Lekcja 19, losowanie a wynik dodawania
Ostatnio zmodyfikowano 2012-01-19 11:34
Mioka Temat założony przez niniejszego użytkownika |
Lekcja 19, losowanie a wynik dodawania » 2011-12-10 23:27:34 napisałem taki kod #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int losuj( int liczba[ 999 ] ) { srand( time( NULL ) ); int licznik = 0; liczba[ 999 ]; int a = 7; int b = 4; liczba[ licznik ] =( rand() % a ) + b; } int pisz( int liczba[] ) { srand( time( NULL ) ); liczba[ 999 ]; int licznik = 0; losuj( liczba ); do { liczba[ licznik ] =( rand() % 7 ) + 4; cout << liczba[ licznik ] << ","; licznik++; } while( licznik < 999 ); licznik = 0; } int obliczSume( int liczba[] ) { srand( time( NULL ) ); liczba[ 999 ]; int licznik = 0; pisz( liczba ); int suma; do { suma = liczba[ licznik ] + suma; licznik++; } while( licznik < 999 ); std::cout << suma << endl; } int main() { srand( time( NULL ) ); int liczba[ 999 ]; losuj( liczba ); pisz( liczba ); int iSuma = obliczSume( liczba ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; }
Nie wiem tylko czemu nie zmienia on wyniku dodawania, zmienia on wyniki losowania, lecz dodawania nie. Szukałem błędów jednak ich nie znalazłem. |
|
DejaVu |
» 2011-12-11 08:21:29 int licznik = 0;
liczba[ licznik ] =( rand() % a ) + b;
|
|
Mioka Temat założony przez niniejszego użytkownika |
» 2011-12-11 12:03:33 Niestety DejaVu nie zrozumiałem gdzie popełniłem błąd. Jak możesz to opisz go słownie i spróbuj naprowadzić jak mam go rozwiązać. |
|
pekfos |
» 2011-12-11 16:46:41 |
|
akwes |
» 2011-12-11 16:50:31 i tak ogólnie to za dużo srand( time( NULL ) ); |
|
Mioka Temat założony przez niniejszego użytkownika |
» 2011-12-11 18:14:50 Pekfosie liczba[ 999 ]; jest to tablica jednowymiarowa. Wiem, że użyłem za dużo srand( time( NULL ) ); , ale myślałem, że brak zmienności dodawania jest winny temu, że w funkcjach nie ma tej linijki. |
|
pekfos |
» 2011-12-11 18:19:28 To próba dostępu do 999 elementu i nie użycie wartości. Jest sens? nie ma! |
|
Mioka Temat założony przez niniejszego użytkownika |
» 2011-12-11 21:10:59 Poprawiony, lecz ciągle niedziałający tak jak powinien kod wygląda tak: #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int losuj( int liczba[] ) { int licznik = 0; int a = 7; int b = 4; liczba[ licznik ] =( rand() % a ) + b; } int pisz( int liczba[] ) { int licznik = 0; losuj( liczba ); do { liczba[ licznik ] =( rand() % 7 ) + 4; cout << liczba[ licznik ] << ","; licznik++; } while( licznik < 999 ); licznik = 0; } int obliczSume( int liczba[] ) { int licznik = 0; int suma; do { suma = liczba[ licznik ] + suma; licznik++; } while( licznik < 999 ); std::cout << suma << endl; } int main() { srand( time( NULL ) ); int liczba[ 999 ]; losuj( liczba ); pisz( liczba ); int iSuma = obliczSume( liczba ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; }
Wie ktoś czemu nie sumuje on cyfr, które są wylosowane, tylko dodaje stałe liczby? |
|
« 1 » 2 3 |