qwertyuoipzx Temat założony przez niniejszego użytkownika |
19. Przekazywanie tablic jednowymiarowych do funkcji » 2016-11-06 17:56:56 Witam, słabo mi idzie zrozumienie funkcji, a co dopiero tego zadania. Wiem jak przekazywać wartości z jednej do drugiej, lecz nie wiem kompletnie co zrobić np. z zmienną tablica Tutaj cały kod, jaki udało mi się wymyślić ale z marnym skutkiem. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int wylosujLiczby( int a, int b, int c, int d ) { srand( time( NULL ) ); int losowanie[ a ] do { losowanie[ a ] =( rand() % b ) + c; a-- } return losowanie; }
int wypiszLiczby( int e[], int f ) { do { cout << "Losowanie: " << wylosujLiczby << endl; f-- } while( f = !0 ) }
int obliczSume( int g, int h ) { }
int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 10 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); cout << "Suma liczb wynosi: " << iSuma << endl; return 0; }
Compiling: D:\C++\13zadanie.cpp D:\C++\13zadanie.cpp: In function 'int wylosujLiczby(int, int, int, int)': D:\C++\13zadanie.cpp:10: error: expected initializer before 'do' D:\C++\13zadanie.cpp:15: error: 'losowanie' was not declared in this scope D:\C++\13zadanie.cpp: In function 'int wypiszLiczby(int*, int)': D:\C++\13zadanie.cpp:24: error: expected ';' before '}' token D:\C++\13zadanie.cpp:25: error: expected ';' before '}' token D:\C++\13zadanie.cpp: In function 'int main()': D:\C++\13zadanie.cpp:35: error: invalid conversion from 'int*' to 'int' D:\C++\13zadanie.cpp:35: error: initializing argument 1 of 'int wylosujLiczby(int, int, int, int)' D:\C++\13zadanie.cpp:37: error: invalid conversion from 'int*' to 'int' D:\C++\13zadanie.cpp:37: error: initializing argument 1 of 'int obliczSume(int, int)'
|
|
BadBullPL |
» 2016-11-06 18:34:51 Przeczytaj lekcję jeszcze raz i czytaj ze zrozumieniem errory to naprawisz parę błędów. |
|
mateczek |
» 2016-11-06 19:23:03 #include <iostream> #include <ctime> using namespace std;
void wylosujLiczby( int tab[], int limitGora, int limitDol, int rozmiar ) { for( int i = 0; i < rozmiar; i++ ) { tab[ i ] =( rand() %( limitGora - limitDol + 1 ) ) + limitDol; } }
void wypiszLiczby( int tablica[], int rozmiar ) { for( int i = 0; i < rozmiar; i++ ) { cout << tablica[ i ] << " "; } }
int obliczSume( int tablica[], int rozmiar ) { int suma = 0; for( int i = 0; i < rozmiar; i++ ) { suma += tablica[ i ]; } return suma; }
int main() { srand( time( NULL ) ); constexpr int tabSize = 50; int tablica[ tabSize ]; wylosujLiczby( tablica, 10, 4, tabSize ); wypiszLiczby( tablica, tabSize ); int iSuma = obliczSume( tablica, tabSize ); cout << "Suma liczb wynosi: " << iSuma << endl; return 0; }
|
|
qwertyuoipzx Temat założony przez niniejszego użytkownika |
» 2016-11-06 20:51:04 Nie chcę używać for, bo jeszcze tego formalnie nie umiem. Ale trochę to pomogło. Napisałem coś takiego: #include <iostream> #include <ctime> #include <cstdlib> using namespace std; void wylosujLiczby( int tablica[], int limit, int losowanieGora, int losowanieDol ) { int i; do { i++; int tablica[ i ] =( rand() % losowanieGora ) + losowanieDol; } while( i < limit ); }
void wypiszLiczby( int tablica[], int ile ) { int g; do { g++; cout << tablica[ g ] << " , "; } while( g < 1000 ); }
int obliczSume( int tablica[], int ilosc ) { int b; int suma = 0; do { b++; suma += tablica[ b ]; } while( b < ilosc ); return suma; }
int main() { srand( time( NULL ) ); int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 10 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); cout << "Suma liczb wynosi: " << iSuma << endl; return 0; }
Ale pozostaje jeden błąd: D:\C++\1zadanie.cpp: In function 'void wylosujLiczby(int*, int, int, int)': D:\C++\1zadanie.cpp:11: error: variable-sized object 'tablica' may not be initialized
Choć coś czuję, że to wszystko jest źle ;_; |
|
mateczek |
» 2016-11-06 21:27:42 wszystkie funkcje mają te same błędy void wylosujLiczby( int tablica[], int limit, int losowanieGora, int losowanieDol ) { int i = 0; do { tablica[ i ] =( rand() % losowanieGora ) + losowanieDol; i++; } while( i < limit ); } #include <iostream> #include <ctime> #include <cstdlib> using namespace std; void wylosujLiczby( int tablica[], int limit, int start, int stop ) { int i = 0; while( i < limit ) { tablica[ i ] =( rand() %( stop - start + 1 ) ) + start; i++; } }
void wypiszLiczby( int tablica[], int rozmiar ) { int g = 0; while( g < rozmiar ) { cout << tablica[ g ] << " , "; g++; } }
int obliczSume( int tablica[], int ilosc ) { int b = 0; int suma = 0; while( b < ilosc ) { suma += tablica[ b ]; b++; } return suma; }
int main() { srand( time( NULL ) ); constexpr int size = 5; int tablica[ size ]; wylosujLiczby( tablica, size, 4, 10 ); wypiszLiczby( tablica, size ); int iSuma = obliczSume( tablica, size ); cout << "Suma liczb wynosi: " << iSuma << endl; return 0; }
|
|
« 1 » |