Rozdział 19 Zadanie domowe
Ostatnio zmodyfikowano 2014-10-25 10:00
wirusomaniak Temat założony przez niniejszego użytkownika |
Rozdział 19 Zadanie domowe » 2014-10-24 21:42:52 Witam mój program po kompilacji i uruchomieniu nie jest zgodny z treścią polecenia: 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. Tablica ma być zadeklarowana w funkcji main. Oczekiwane funkcje: Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji. Sumowanie określonej ilości liczb znajdujących się w tablicy i zwrot wyniku. Wypisywanie zawartości tablicy. Przykładowa implementacja funkcji main: int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 10 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; } Kod mojego programu to #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int wylosujLiczby( int t[], int iRozmiar, int b, int c ) { int i = 0; do { srand( time( NULL ) ); t[ i ] =( rand() % c ) + b; i++; } while( i < iRozmiar ); return 0; } int wypiszLiczby( int a[], int Rozmiar ) { cout << "Podales nastepujace liczby: "; int licznik = 0; do { cout << a[ licznik ] << ", " << endl; licznik++; } while( licznik < Rozmiar ); return 0; } int obliczSume( int a[], int rozmiar ) { int wynik; int licznik = 0; int licznik2 = 1; do { wynik += a[ licznik ]; licznik++; licznik2++; } while( licznik != rozmiar ); return wynik; } int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 7 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; } Czy moglibyście udzielić mi jakiś wskazówek co źle robię? |
|
1aam2am1 |
» 2014-10-24 21:50:29 srand(time(NULL)); na początku main
t[ i ] =( rand() % c ) + b; //jest złe b = 4 c = 10 t[ i ] =( rand() % (c-b+1)) + b; //tak ma być chyba |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
» 2014-10-24 22:03:38 Dziękuję zapomniałem dodać linijki z null w funkcji main jeszcze raz dzięki za pomoc . |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
» 2014-10-25 09:56:34 Mam jeszcze jedno pytanie dlaczego wylosowane liczby maja tylko cały czas tą samą wartość np. 999 razy wylosuje mi się cyfra 4 ? |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
» 2014-10-25 10:00:31 Aha dobra już rozwiązałem ten problem poprostu w programie dwa razy była umieszczona funkcja null na początku main i na poczatku funkcji wylosuj liczby gdy usunąłem linijke null z funkcji wylosuj liczby i zostawiłem tylko jedną w main to wszystko działa poprawnie.Zamykam temat. |
|
« 1 » |