Funkcje - pierwsze starcie... z pracą domową...
Ostatnio zmodyfikowano 2011-04-25 17:10
MusicWarrior Temat założony przez niniejszego użytkownika |
Funkcje - pierwsze starcie... z pracą domową... » 2011-04-25 11:25:26 Większość pewnie się domyśla, o co mi chodzi... "Napisz funkcję, która losuje liczbę z przedziału od 50 do 60 włącznie. Wywołaj funkcję kilka razy (wypisz wylosowane wartości na ekran) w celu przetestowania czy działa ona poprawnie." A oto mój kod: #include <iostream> #include <conio.h> #include <string> #include <cstdlib> #include <ctime> using namespace std; int losuj() { srand( time( NULL ) ); cout << "LOSUJEMY!... Wylosowana liczba to... " <<( rand() % 61 ) + 50 << endl; return 0; }
int main() { srand( time( NULL ) ); string zmienna; cout << "Napisz 'LOSUJ' aby wylosowac liczbe... " << endl; cin >> zmienna; switch( zmienna ) { case 'LOSUJ': losuj(); break; case 'losuj': losuj(); break; case 'Losuj': losuj(); break; default: cout << "LOSUJ TROLLU LOSUJ." << endl; } getch(); }
I dla ułatwienia zadania, błędy jakie wywala mi kompilator, błędy których nie potrafię rozkminić... 1>------ Build started: Project: PUSTY, Configuration: Release Win32 ------ 1> file.cpp 1>file.cpp(9): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data 1>file.cpp(17): warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data 1>file.cpp(22): error C2450: switch expression of type 'std::string' is illegal 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 1>file.cpp(24): error C2015: too many characters in constant 1>file.cpp(28): error C2015: too many characters in constant 1>file.cpp(28): error C2196: case value '0' already used 1>file.cpp(32): error C2015: too many characters in constant 1>file.cpp(32): error C2196: case value '0' already used ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Oczywiście, chodzi mi o to, co jest źle i dlaczego?... |
|
greenhouse |
» 2011-04-25 11:40:58 jest dużo błędów, to co mi się rzuca w oczy
funkcja rand - rand() % 11 + 50 (losujesz z 11 liczb, a nie z 61
funkcja srand wystarczy tylko raz w int main, mozesz skasowac z funkcji losowania
poza tym funkcja switch jest bez sensu, bo to nie jest funkcja, która wywołuje kilka razy to samo zjawisko.
Do tego służy do... while, a switch możesz użyć jako mini menu (Czy chcesz wylosować liczbę 1 - tak, 0 - nie) i warunek zakończenia do...while (zmienna != 0)
Nie jestem znawcą tematu, więc mogę dość chaotycznie pisać, ale mam nadzieję, że rozumiesz.
|
|
MusicWarrior Temat założony przez niniejszego użytkownika |
» 2011-04-25 17:10:36 Dzięki! Jakby kogoś interesowało jak to skleiłem, choć nie do końca działa poprawnie (kiedy wpisujesz liczbę ujemną) to tutaj macie linka: http://wklej.org/id/518717/
|
|
« 1 » |