Rozdział 22 pętla for.
Ostatnio zmodyfikowano 2018-02-20 19:05
tomis69 Temat założony przez niniejszego użytkownika |
Rozdział 22 pętla for. » 2018-02-12 02:42:54 Witajcie. Gdzieś popełniłem błąd, który ciężko mi zlokalizować, a mianowicie ciąg liczb nie jest taki jakiego oczekujemy... Standardowo proszę o wskazówki ;) Z góry bardzo dziękuje! #include <iostream>
using namespace std;
void wypiszLiczby( int tablica[], int ile ) { for( int indeks = 0; indeks < ile; indeks++ ); }
long long losujLiczby( int tablica[], int ile ) { long long n = 0; for( int indeks = 0; indeks < 20; indeks++ ) { n =( 1 + n * 5 ); cout << n << endl; } return n; }
int main() { int dane[ 20 ]; wypiszLiczby( dane, 20 ); long long wynik = losujLiczby( dane, 20 ); cout << "Program wylosowal nastepujace liczby: " << wynik << endl; return 0; }
|
|
YooSy |
» 2018-02-12 07:28:45 Po pierwsze funkcja wypiszLiczby nie wypisuje żadnych liczb. Po drugie funkcja losujLiczby nie korzysta z argumentu ile. Po co on tam jest? ciąg liczb nie jest taki jakiego oczekujemy... |
(kto tam z wami jest?;)). Wypadałoby napisać jaki ma być output, a jaki faktycznie jest. Poszukaj w internetach info o debugowaniu kodu. |
|
tomis69 Temat założony przez niniejszego użytkownika |
» 2018-02-16 18:49:08 Nie czepiaj sie liczby mnogiej ;) Pierwsza wersja kodu byla pisana po pracy i mozg juz nie pracowal (sam sie dziwie ze tak kiepski kod wstawilem na forum)... Ponizej zamieszczam co napisalem. Liczby wypisywane sa poprawnie aczkolwiek output sumy nie jest poprawny. Czy mozesz mnie kolego naprowadzic? Odnosnie debugowania to chyba za wczesnie aby sie tego uczyc. Zdaje sobie sprawe z potrzeby korzystania z debugera aczkolwiek na tym etapie to chyba mimo wszystko zbyt wczesnie :) #include <iostream>
using namespace std;
int sumujLiczby( int tablica[], int ile ) { int oblicz; for( int indeks = 0; indeks < ile; indeks++ ) oblicz += tablica[ indeks ]; return oblicz; }
long long losujLiczby( int tablica[] ) { long long n = 0; for( int n = 0; n < 20; n++ ) { cout << 1 + n * 5 << endl; } return n; }
int main() { int dane[ 20 ]; losujLiczby( dane ); int suma = sumujLiczby( dane, 20 ); cout << "Suma wylosowanych liczb: " << suma << endl; return 0; }
|
|
Luq |
» 2018-02-16 19:21:36 long long losujLiczby( int tablica[] ) { long long n = 0; for( int n = 0; n < 20; n++ ) { cout << 1 + n * 5 << endl; } return n; }
Tylko wypisujesz te liczby, nie zapisujesz ich do tablicy. Poza tym to tak średnio losowe te liczby. Zmienną do sumowania warto by zainicjować do zera. |
|
YooSy |
» 2018-02-16 20:13:47 Zdaje sobie sprawe z potrzeby korzystania z debugera |
Dobrze, bo to najważniejsze narzędzie programisty. aczkolwiek na tym etapie to chyba mimo wszystko zbyt wczesnie :) |
Nie jest za wcześnie, a im szybciej nauczysz się samodzielnie skutecznie szukać błędów w logice programu, tym lepiej dla ciebie. Masz funkcję losujLiczby, która niczego nie losuje. Nazwy funkcji powinny opisywać do czego służą. Jw. zmienna oblicz nie jest zinicjalizowana (UB). Pseudolosowe liczby całkowiteUżyj tych narzędzi do losowania liczb lub skorzystaj z nowszych narzędzi http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distributionNie czepiaj sie liczby mnogiej ;) |
Wybacz. |
|
tomis69 Temat założony przez niniejszego użytkownika |
» 2018-02-20 18:25:01 W jaki sposób output mam zapisać do tablicy? |
|
jankowalski25 |
» 2018-02-20 18:27:41 tablica[ indeks ] = zmienna; |
|
tomis69 Temat założony przez niniejszego użytkownika |
» 2018-02-20 18:42:25 Bardziej chodziło mi o to, żeby napisać funkcję która miałaby to robić bo samo przypisanie to ja wiem, ale tu mamy 20 liczb. Niestety w żaden sposób nie mogę podpiąć owej metody przypisania do mojego kodu. |
|
« 1 » 2 |