Rozdział 19 zadanie domowe.
Ostatnio zmodyfikowano 2012-07-29 16:00
Robson Temat założony przez niniejszego użytkownika |
Rozdział 19 zadanie domowe. » 2012-07-17 16:06:36 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. Wszelkie operacje maj¹ zostaæ zrealizowane w oparciu o funkcje. Napisałem ten program: #include <iostream> #include <ctime> #include <cstdlib>
int wylosuj( int tablica[], int ile ) { int i; i = 0; do { tablica[ i ] =( rand() % 7 ) + 4; std::cout << tablica[ i ] << std::endl; i++; } while( i < ile ); }
int obliczsume( int tablica[], int zilu ) { int i = 0; int suma = 0; do { suma = suma + tablica[ i ]; i++; } while( i < zilu ); }
int main() { srand( time( NULL ) ); int suma; int liczby[ 999 ]; wylosuj( liczby, 999 ); suma = obliczsume( liczby, 999 ); std::cout << suma << std::endl; return 0; } tylko nie podoba mi się to, że za każdym razem suma wynosi 768 ( u jednego gościa na forum też tak było ). Czy to jest poprawne? Sumy nie powinny być za każdym razem inne? ( liczby są różne, suma ta sama ) Myślę, że coś nie gra. |
|
diego997 |
» 2012-07-17 16:13:19 Jak co u mnie dobrze dziala ;p
Edit: w funkcji obliczsume dodalem na koncu return suma; a int wylosuj zmienilem na void wylosuj
BTW:: Dzwine ze ci sie kompilowalo int wylosuj jak nic nie zwracales ;p |
|
Robson Temat założony przez niniejszego użytkownika |
» 2012-07-29 14:48:04 Wiem, że działa. Interesuje mnie tylko, dlaczego wynik jest ZAWSZE 768. Patrzyłem kody innych tutaj na forum i u nich też 768 wychodzi za każdym razem. Troszeczkę to dziwne ;p |
|
OSA_PL |
» 2012-07-29 16:00:47 Tak jak Ci napisał kolega wyżej, w funkcji obliczsume nie zwracasz żadnej wartości i dlatego taki wynik. |
|
« 1 » |