luuuzik Temat założony przez niniejszego użytkownika |
[ Rozdział 19 ] Problem z argumentami » 2014-11-08 21:54:58 Witam, mam mały problem z argumentami, a mianowicie kompilator nie chce mi kodu skompilować, poniżej wrzucam kod + SS: #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int tablica[ 999 ]; int poczatek = 4; int koniec = 10; int zakrestablicy = 999; int licznik = 0;
void wylosujLiczby( int tablica[], int zakrestablicy, int poczatek, int koniec ) { licznik = 0; do { int losowanie = 1; cout << "Losuje " << losowanie << " liczbe " << endl; tablica[ licznik ] =( rand() %(( koniec - poczatek ) + 1 ) + poczatek ); licznik++; losowanie++; } while( licznik < 999 ); return; } void wypiszLiczby( int tablica[], int zakrestablicy ) { licznik = 0; do { cout << "Tablica : " << tablica[ licznik ] << " licznik: " << endl; licznik++; } while( licznik < 999 ); } float obliczSume( int tablica[], int zakrestablicy ) { int suma; licznik = 0; do { suma = suma + tablica[ licznik ]; licznik++; } while( licznik < 999 ); return suma; } int main() { int tablica[ 999 ]; srand( time( NULL ) ); wylosujLiczby( int tablica, int zakrestablicy, int poczatek, int koniec ); wypiszLiczby( int tablica, int zakrestablicy ); int iSuma = obliczSume( int tablica, int zakrestablicy ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; }
|
|
czosnek17 |
» 2014-11-08 22:17:38 int main() { wylosujLiczby( int tablica, int zakrestablicy, int poczatek, int koniec ); wypiszLiczby( int tablica, int zakrestablicy ); int iSuma = obliczSume( int tablica, int zakrestablicy ); }
Tak się nie uruchamia funkcji http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-pierwsze-starcie/291Próbujesz przekazać do funkcji zmienne globalne, co nie ma sensu, masz 2 razy int tablica[999] (w main i globalnie). |
|
luuuzik Temat założony przez niniejszego użytkownika |
» 2014-11-09 00:30:54 Ok, wszystko działa dzięki;) |
|
Smncru5 |
» 2015-01-11 12:35:33 Mam podobny problem co w lekcji 18, suma zawsze wychodzi taka sama i do tego jest ogromna. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
float wylosujLiczby( int tablica[], int tRozmiar, int start, int stop ) { srand( time( NULL ) ); int t = 0; do { tablica[ t ] =(( rand() % stop ) + start ); t++; } while( t < tRozmiar ); return 0; }
float wypiszLiczby( int tablica[], int tRozmiar ) { cout << "Oto wylosowane liczby: "; int t = 0; do { cout << tablica[ t ] << ", "; t++; } while( t < tRozmiar ); return 0; }
int obliczSume( int tablica[], int tRozmiar ) { int i = 0; int suma; do { suma += tablica[ i ]; i++; } while( i < tRozmiar ); return suma; }
int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 10 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); std::cout << endl << "Suma liczb wynosi: " << iSuma << std::endl; return 0; }
Nie wiem co może być nie tak, ktoś pomoże? edit//Swoją drogą zauważyłem, że ten sposób na losowanie liczb z danego przedziału jakoś dziwnie działa, bo liczby są losowane (i były też w zadaniu ostatnim) z przedziału 4 do 13, co jest nie tak, chyba nie rozumiem tego za bardzo? edit2//Trzeba było ustawić zmienną suma na 0, teraz wszystko działa. int obliczSume( int tablica[], int tRozmiar ) { int i = 0; int suma = 0; do { suma += tablica[ i ]; i++; } while( i < tRozmiar ); return suma; }
Poprawny (a przynajmniej działający :D) zapis funkcji sumującej do zadania domowego z lekcji 19. |
|
« 1 » |