Minos Temat założony przez niniejszego użytkownika |
Rozdział 19 » 2018-06-11 21:32:17 Chyba bardzo mało osób robiło ten kurs, a wątek w którym chciałem napisać został chyyyba zamknięty. Dlatego pozwolę sobie wkopiować tutaj mój kod i prosiłbym poradę. Albo raczej napisanie mi co zrobiłem nie tak, bo już drugi czy trzeci dzień z tym walczę i coś tracę. Nie za bardzo ogarniam tablice, co widać... Ps. Nie wiem jak to ładniej zedytować, żeby było w ramce z nagłówkiem c/c++, za co przepraszam. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
void wylosujLiczby( int tablica[], int numeromierz, int a, int b ) { srand( time( NULL ) ); int i = 0; do { int tablica[ i ] =(( rand() % b ) + a ); i++; } while( i < numeromierz ); }
void wypiszLiczby( int tablica[], int numeromierz ) { int i = 0; do { i++; cout << tablica[ i ] << endl; } while( i < numeromierz ); }
int obliczSume( tablica[ i ], numeromierz ) { int i = 0; int suma = 0; do { i++; suma += tablica[ i ]; } while( i < numeromierz ); return suma; }
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; }
[ / i ] |
|
pekfos |
» 2018-06-11 21:37:29 int tablica[ i ] =(( rand() % b ) + a );
|
Po co te int? |
|
Minos Temat założony przez niniejszego użytkownika |
» 2018-06-11 21:51:35 Szczerze mówiąc to już chyba faktycznie zmęczenie materiału, nie wiem X_x. W sensie niepotrzebne.
A w linijce 33? Trochę nie ogarniam dlaczego tablica oraz i nie są zadeklarowane.
Edit, końcówka chyba tak: int obliczSume( int tablica[], int numeromierz ) { int i = 0; int suma = 0; do { i++; suma += tablica[ i ];
} while( i < numeromierz );
return suma; }
Potrzebuję duużo kawy, albo snu...
Tylko dlaczego losuje liczby z zakresu 4 do 13, hmm... |
|
Minos Temat założony przez niniejszego użytkownika |
» 2018-06-11 22:09:33 Dodatkowo mam taki problem, że ostatnia liczba jest duża (z 999 zmieniłem na 9, żeby sprawdzić krzaki).
http://s5.ifotos.pl/img/Screensho_qehssha.jpg |
|
pekfos |
» 2018-06-11 22:10:20 Bo to nie jest formuła na losowanie z przedziału a do b. i++; cout << tablica[ i ] << endl; |
Kolejność operacji ma znaczenie. Nigdy nie wypisujesz tu elementu zerowego, a ostatni jest poza tablicą. |
|
Minos Temat założony przez niniejszego użytkownika |
» 2018-06-11 22:25:48 Faktycznie, nie doczytałem i uprościłem w głowie, ale widziałem, że nie tylko ja tak do tego podszedłem na forum Poprawione na: tablica[ i ] =(( rand() % (b - 3) ) + a );
Z drugim problemem jeszcze się głowię, bo chyba rozumiem, o co chodzi, ale nie wiem jak tego uniknąć. EDIT problem drugi - już rozumiem, że nawet miejsce i++; ma znaczenie.
Dzięki bardzo za szybkie odpowiedzi! |
|
jankowalski25 |
» 2018-06-11 23:29:31 A ta trójka to skąd? Dla a = 30, b = 50 to już nie zadziała. |
|
Minos Temat założony przez niniejszego użytkownika |
» 2018-06-11 23:52:51 W sumie to poszedłem na łatwiznę, żeby po prostu losowało liczby od 4 do 10. |
|
« 1 » 2 |