[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 »  |