[Lekcja 18] Praca domowa. Jak sumować dane z tablicy?
Ostatnio zmodyfikowano 2012-02-21 01:37
daniel.d Temat założony przez niniejszego użytkownika |
[Lekcja 18] Praca domowa. Jak sumować dane z tablicy? » 2012-02-19 22:23:25 #include <cstdlib> #include <iostream> using namespace std;
int liczby[ 999 ]; int wybor; int powt = 0; int wylosowana_liczba; int licznik; int suma; int main() { for( int licznik = 0; licznik <= 998; licznik++ ) { liczby[ licznik ] =( rand() % 10 ) + 4; } cout << "Podales liczby: \n"; licznik = 0; do { cout << liczby[ licznik ] << "\n"; licznik++; } while( licznik <= 998 ); system( "pause" ); }
Napisałem już taki kod lecz nie wiem co napisać aby program dodał liczby z tablicy. Jak to zrobić? |
|
SeaMonster131 |
» 2012-02-19 22:27:51 'Tak samo' jak zrobiłeś np losowanie liczb. Czyli tworzysz zmienna wynik, a w pętli (for albo while, bez różnicy, choć for jest krótsze) dodajesz do tej zmiennej każdy element tej tablicy. |
|
benq |
pętla sumująca » 2012-02-19 22:43:01 do { wynik = liczba[ licznik ] + wynik; liczba[ licznik ] = wynik; licznik++; } while( licznik < 998 ); |
|
daniel.d Temat założony przez niniejszego użytkownika |
» 2012-02-19 23:35:35 Dziękuję wam, ale nie rozumiem jednej rzeczy w tym kodzie, mianowicie: liczby[ licznik ] = wynik;
Dlaczego to? EDIT. Po kompilacji tego: #include <cstdlib> #include <iostream> using namespace std;
int liczby[ 999 ]; int wybor; int powt = 0; int wylosowana_liczba; int licznik; int suma; int wynik; int main() { for( int licznik = 0; licznik <= 998; licznik++ ) { liczby[ licznik ] =( rand() % 10 ) + 4; } licznik = 0; do { cout << liczby[ licznik ] << "\n"; licznik++; } while( licznik <= 998 ); do { wynik = liczby[ licznik ] + wynik; liczby[ licznik ] = wynik; licznik++; } while( licznik < 998 ); cout << "\nSuma to: " << wynik << endl; system( "pause" ); }
Program wypisuje wszystkie liczby lecz wyświetla sumę 0. Co jest źle? |
|
benq |
suma =0 » 2012-02-19 23:55:45 brak przed pętlą sumującą licznik = 0 |
|
RazzorFlame |
» 2012-02-20 07:11:03 To co benq napisał. Poza tym mógłbyś zrobić w pętli krócej: licznik = 0; do { wynik += liczba[ licznik ]; } while( licznik < 998 );
Edit: Pętla for: (Najkrótsza) for( licznik = 0; licznik < 999; licznik++, wynik += liczba[ licznik ] );
|
|
daniel.d Temat założony przez niniejszego użytkownika |
» 2012-02-20 19:42:28 Dziękuję. Program już działa, liczby są sumowane, ale jeszcze jedna rzecz mnie niepokoi, mianowicie: #include <cstdlib> #include <iostream> using namespace std;
int liczby[ 999 ]; int wybor; int powt = 0; int wylosowana_liczba; int licznik; int suma; int wynik; int main() { for( int licznik = 0; licznik <= 998; licznik++ ) { liczby[ licznik ] =( rand() % 10 ) + 4; } do { cout << liczby[ licznik ] << "\n"; licznik++; } while( licznik <= 998 ); wynik = 0; for( licznik = 0; licznik < 999; licznik++, wynik += liczby[ licznik ] ); cout << "\nSuma to: " << wynik << endl; system( "pause" ); } To jest właśnie ten kod, wszystko działa tylko kompilator pokazuje uwagi: In function 'int main()': [Warning] name lookup of 'licznik' changed [enabled by default] [Warning] matches this 'licznik' under ISO standard rules [enabled by default] [Warning] matches this 'licznik' under old rules [enabled by default] Z tego co rozumiem to kompilatorowi chodzi o to, że zmienna licznik jest w starym standardzie i zostaje automatycznie zmieniona. O co dokładniej chodzi? |
|
benq |
moja petla sumujaca » 2012-02-21 01:37:23 wyżej poradziłem jak zrobić pętle i tam mi zakradł się błąd a mianowicie nie potrzeba tam zapisu
"liczby[ licznik ] = wynik;"
sorry za wprowadzenie w błąd. :) |
|
« 1 » |