Lekcja 18 Sprawdzenie Zadania
Ostatnio zmodyfikowano 2013-02-28 01:20
piotrek353 Temat założony przez niniejszego użytkownika |
Lekcja 18 Sprawdzenie Zadania » 2012-12-28 12:56:46 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. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy. #include <iostream> #include <cstdlib> #include <ctime>
int main() { int liczba[ 999 ]; int licznik = 0; srand( time( NULL ) ); do { liczba[ licznik ] =( rand() % 7 ) + 4; licznik++; } while( licznik < 999 ); std::cout << "liczby wylosowane to: " << std::endl; licznik = 0; do { std::cout << liczba[ licznik ] << ", "; licznik++; } while( licznik < 999 ); std::cout << "\n\nsuma wszystkich liczb wylosowanych wynosi: " << std::endl; int wynik = 0; int a = 0; int klicznik = 0; do { wynik = wynik + liczba[ a++ ]; klicznik++; } while( klicznik < 998 ); std::cout << wynik << std::endl; return 0; }
Czy dobrze wykonałem zadanie domowe? |
|
Mike148 |
» 2012-12-28 14:26:39 Na pierwszy rzut oka wygląda, że dobrze. Zmień tylko 998 na 999 w ostatniej pętli. |
|
CrisOf7 |
» 2013-01-17 00:57:04 Nie rozumiem dlaczego zdeklarowales a? Przecież ona nic nie wnosi. Tak samo mogles napisac zamiast a++ dać klicznik. Jezeli się myle to niech ktoś poprawi :) int wynik = 0; int klicznik = 0; do { wynik = wynik + liczba[ klicznik ]; klicznik++; } while( klicznik < 999 );
std::cout << wynik << std::endl; return 0;
|
|
crash |
» 2013-01-28 03:47:01 Już w pętli wyświetlającej elementy powinieneś obliczać sumę: do { std::cout << liczba[ licznik ] << ", "; wynik += liczba[ licznik ]; licznik++; } while( licznik < 999 );
Mniej pisania. Co prawda mały projekt ale trza wiedzieć, że nie należy robić dodatkowych pętli jeśli w jednej można zrobić wszystko: do { liczba[ licznik ] = rand() % 7 + 4; wynik += liczba[ licznik ]; std::cout << liczba[ licznik ] << ", "; licznik++; } while( licznik < 999 );
PS; osobiście użyłbym pętli for zamiast do..while, ale to tylko moja subiektywna ocena |
|
Maniek |
» 2013-01-28 09:23:16 W tym zadaniu celowo została użyta pętla do...while, ponieważ pętla for będzie opisywana dopiero w bodajże 22 rodziale. |
|
Dominisia |
» 2013-02-27 15:53:52 Czyli mogę tak zrobić tak wszystko w jednej pętli? #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int liczba[ 9 ]; int licznik; int wynik; srand( time( NULL ) ); wynik = 0; licznik = 0; do { liczba[ licznik ] =(( rand() % 7 ) + 4 ); cout << liczba[ licznik ] << endl; wynik = wynik + liczba[ licznik ]; licznik = licznik + 1; } while( licznik < 10 ); cout << "wynik:" << wynik << endl; system( "pause" ); return 0; } |
|
Monika90 |
» 2013-02-27 16:39:40 @Dominisia wychodzisz poza zakres tablicy, poza tym jeżeli chcesz zrobić wszystko w jednej pętli, to w ogóle tablicy nie potrzebujesz, można sumować liczby na bieżąco.
@Maniek Sposób w jaki ten kurs traktuje pętle jest nieco dziwny. Pętla do-while jest rzadko używana i trudna w analizie. Kurs powinien zacząć od pętli while i for (petla for to prosta postać pętli while). |
|
usmiech |
» 2013-02-28 01:20:36 << removed >> |
|
« 1 » |