Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablice jednowymiarowe

Ostatnio zmodyfikowano 2015-06-05 17:18
Autor Wiadomość
BartC
Temat założony przez niniejszego użytkownika
Tablice jednowymiarowe
» 2015-05-12 18:18:06
Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand( time( NULL ) );
    std::cout << "Program wylosuje 999 liczb w zakresie od 4 do 10. " << std::endl;
    int liczba[ 999 ];
    int licznik = 0;
    do
    {
        liczba[ licznik ] =(( std::rand() % 6 ) + 5 );
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "Wylosowane liczby: " << std::endl;
    licznik = 0;
    do
    {
        std::cout << liczba[ licznik ] << std::endl;
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "Sumuje te liczby: " << std::endl;
    do
    {
        licznik = 0;
       
    }

Jak zsumować te liczby prostszym sposobem niż wypisywanie po kolei.
P-132127
notabigthreat
» 2015-05-12 18:40:20
Wystarczy zrobić sobie zmienną, na początku wynoszącą 0, przechowującą sumę tych liczb. Program wypisuje wszystkie te liczby w pętli. W tym samym miejscu możesz dodać do tej sumy właśnie wyświetlaną liczbę.

BTW, źle masz to modulo przy losowaniu. Powinieneś uzyskać liczbę od 0 do 6 i do niej dodać 4. Reszta z dzielenia przez 6 jest od 0 do 5 (mówiąc o liczbach dodatnich).

A co złego jest w przejściu przez tą tablicę jeszcze raz?
P-132129
Szymon2727
» 2015-05-15 19:31:34
http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Operacje-matematyczne/13

Inkrementacja w pętli zrobi swoje.
P-132310
Maciek
» 2015-05-15 22:13:15
Moim zdaniem mogłbyś lepiej zastosować tablicę z STL - std::array (nagłowek <array>), nie musiał byś się przejmować też dodatkową zmienną określającą indeks tablicy (iteratory, taka tablica ma begin() i end()), do tego mógłbyś wykorzystać algrorytmy STL żeby sobie wylosować tablicę. Oczywiście jeśli to ma być C++ (STL jest częścią standardu języka).
P-132319
JMII89
» 2015-05-15 22:42:28
Maciek widzisz w jakiej on jest części kursu ?? Pierdzielisz mu o STL'ach jak on pewnie nie wie co to jest.
P-132323
damian955
» 2015-05-27 12:38:16
Ja ci pomogę, bo przed chwilą to też zrobiłem.

Jak już wypisane zostały liczby na ekran to:

Utwórz nową zmienną, może być dla int która będzie twoim wynikiem.

Za wynik wstaw pierwszą zmienną tablicy jednowymiarowej.

Później ustaw punkt licznika o jeden większy od tego co w wpisałeś w sumie.

Później zrób pętlę.

W pętli ustaw wynik do którego będzie się dodawać ogólnik w postaci liczby i licznikiu do sumy.

Dodaj następną linie aby za każdą pętlą licznik rósł o jeden.

dodaj warunek kończący pętlę, jeśli licznik osiągnie swój limit.

Sprawdź to na mniejszym zakresie, np od pierwszej do trzeciej liczby.

Nie podam ci całego kodu, bo możesz się tego nie nauczyć. A tak to chociaż pomyślisz. I tak masz wszystko na talerzu.

PS. Pamiętaj o zakresie przedziału tablic.
P-132847
Wafel
» 2015-06-01 19:27:56
Dzień dobry, też miałem problem z tym zadaniem. Nie wiedziałem jak przypisać do tablicy liczby z losowania. Koniec końców stworzyłem takie coś
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <windows.h>
using namespace std;
int main()
{
    srand( time( NULL ) );
    std::cout << "Program wylosuje 999 liczb w zakresie od 4 do 10. " << std::endl;
    int liczba[ 999 ];
    int licznik = 0;
    long double suma = 0;
   
    do
    {
        liczba[ licznik ] =(( std::rand() % 7 ) + 4 );
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "Wylosowane liczby: " << std::endl;
    licznik = 0;
   
    do
    {
        std::cout << liczba[ licznik ] << std::endl;
        licznik++;
    } while( licznik < 999 );
   
    std::cout << "Sumuje te liczby: " << std::endl;
    licznik = 0;
    do
    {
        suma = suma + liczba[ licznik ];
        licznik++;
       
    } while( licznik < 999 );
   
    cout << "suma z tablic " << suma << endl;
    return 0;
    system( "PAUSE" );
}
Wydaje się dzialać poprawnie. Przy okazji wie ktoś co zrobić, żeby konsola wyświetlała wszystkie wyniki, a nie samą końcówkę?
P-133055
JMII89
» 2015-06-01 21:42:26
Nie da się wyświetlić 999 liczb w konsoli...
P-133070
« 1 » 2
  Strona 1 z 2 Następna strona