Solmis Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 Mam taki kod: #include <cstdlib> #include <iostream> #include <ctime> #include <conio.h> #include <string> using namespace std; int main() { string wybierz; int maximum; int liczba_koncowa; cout<<"Wpisz z jakiego zakresu liczb ma losowac program\n"; cout<<"\nWpisz '1', zeby wylosowac liczbe z zakresu 0-4\n"; cout<<"\nWpisz '2', zeby wylosowac liczbe z zakresu 0-6\n"; cout<<"\nWpisz '3', zeby wylosowac liczbe z zakresu 0-8\n"; cout<<"\nWpisz '4', zeby wylosowac liczbe z zakresu 0-10\n"; cout<<"\nWpisz '5', zeby wylosowac liczbe z zakresu 0-12\n"; cout<<"\nWpisz '6', zeby wylosowac liczbe z zakresu 0-20\n"; cout<<"\nWpisz '7', zeby wylosowac liczbe z zakresu 0-100\n"; cin>>wybierz; if (wybierz == "1"); { maximum = 4; } if (wybierz == "2"); { maximum = 6; } if (wybierz == "3"); { maximum = 8; } if (wybierz == "4"); { maximum = 10; } if (wybierz == "5"); { maximum = 12; } if (wybierz == "6"); { maximum = 20; } if (wybierz == "7"); { maximum = 100; } srand( (unsigned)time( NULL ) ); liczba_koncowa = rand() % maximum; cout<<"Wylosowana liczba: "<<liczba_koncowa; getch(); return 0; } Ma on losować liczby z wybranego zakresu. Wszystko działa, tylko losuje ZAWSZE liczby z zakresu 0-100 (największego). Próbowałem dodać "else", ale wtedy mi nie kompilowało się. Poradźcie mi (co zrobić, albo podajcie jakąś dyrektywę #include do "else". :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 switch i case :P I jakąś zależność między tym wszystkim możesz ułożyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 20 Czerwca 2007 Administratorzy Udostępnij Opublikowano 20 Czerwca 2007 nie znam sie na c, ale tu powinno być coś a'la switch, ew. może zamiast else if się pisze elseif ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 Zobaczmy: #include <cstdlib> #include <iostream> #include <ctime> #include <conio.h> #include <string> using namespace std; int main() { int wybierz; int maximum; int liczba_koncowa; cout<<"Wpisz z jakiego zakresu liczb ma losowac program\n"; cout<<"\nWpisz '1', zeby wylosowac liczbe z zakresu 0-4\n"; cout<<"\nWpisz '2', zeby wylosowac liczbe z zakresu 0-6\n"; cout<<"\nWpisz '3', zeby wylosowac liczbe z zakresu 0-8\n"; cout<<"\nWpisz '4', zeby wylosowac liczbe z zakresu 0-10\n"; cout<<"\nWpisz '5', zeby wylosowac liczbe z zakresu 0-12\n"; cout<<"\nWpisz '6', zeby wylosowac liczbe z zakresu 0-20\n"; cout<<"\nWpisz '7', zeby wylosowac liczbe z zakresu 0-100\n"; cin>>wybierz; if (wybierz == 1); { maximum = 4; } if (wybierz == 2); { maximum = 6; } if (wybierz == 3); { maximum = 8; } if (wybierz == 4); { maximum = 10; } if (wybierz == 5); { maximum = 12; } if (wybierz == 6); { maximum = 20; } if (wybierz == 7); { maximum = 100; } srand( (unsigned)time( NULL ) ); liczba_koncowa = rand() % maximum; cout<<"Wylosowana liczba: "<<liczba_koncowa; getch(); return 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sylwester Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 Jak Tymon powiedział lepiej to zrobić na pętli i case; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 20 Czerwca 2007 Autor Udostępnij Opublikowano 20 Czerwca 2007 @kryniak: Nic nie dało :P @Tymon: Dobry pomysł, tylko kodu szkoda zmieniać (lol, joke). Spróbuję zaraz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Bartek (Kamrat) Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 swith(wybierz) { case 1: maximum = 4; break; case 2: maximum = 6; break; // itd. default: cout<<"Zly wybor\n"; break; } powinno pomóc ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 20 Czerwca 2007 Autor Udostępnij Opublikowano 20 Czerwca 2007 @Jabol: Wiem. :] Właśnie skończyłem, oto plik: Click EDIT: Za co bigshark dostał bana? :P EDIT2: Czemu ten program NIE pokazuje losowych liczb, tylko dodaje do poprzedniej np. 13? :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 a ja tylko od siebie dodam jako ciekawostkę że nie pisze się if (Zmienna1<Zmienna2);// pusta funkcja if bo na końcu jest; { Zmienna1=Zmienna2; } tylko if (Zmienna1<Zmienna2) { Zmienna1=Zmienna2; } Poprawiłem ten błąd w twoim kodzie i mi wszystko działa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 20 Czerwca 2007 Udostępnij Opublikowano 20 Czerwca 2007 A ten się dziwi czemu mu nie działa xD LOL.. Poprawiłem ten błąd w twoim kodzie i mi wszystko działa chyba błędy bo przy każdym if tak było :lol: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 21 Czerwca 2007 Udostępnij Opublikowano 21 Czerwca 2007 błąd nie błędy gdyby zrobił kilka różnych błędów to wtedy by można było powiedzieć błędy ale on popełnił tylko jeden błąd który powtarzał bo myślał że tak ma być czyli błąd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Solmis Opublikowano 21 Czerwca 2007 Autor Udostępnij Opublikowano 21 Czerwca 2007 @LionX Słusznie, mój błąd. Ale niestety tak to jest jak się czyta only 1. post. ;/ Założę się, że nawet tego pliku nie pobrałeś. Przerobiłem toto na ify, ale jest to samo, co przy switchach. ;/ @topic: Myślę, że chodzi o to: srand( (unsigned)time( NULL ) ); liczba_koncowa = rand() % maximum; cout<<"Wylosowana liczba: "<<liczba_koncowa; A dokładniej o znak "%". Dlatego przy większych liczbach zauważa się, że to (obliczając) dodaje kilkanaście. Oczywiście mogę się mylić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LionX Dagger Opublikowano 21 Czerwca 2007 Udostępnij Opublikowano 21 Czerwca 2007 w ramach sprostowania przeczytałem cały temat a poprawiłem cię po to by inni się nie pomylili i po to by pokazać że można to na wiele sposobów napisać nie tylko za pomocą switcha Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Vardi Opublikowano 21 Czerwca 2007 Udostępnij Opublikowano 21 Czerwca 2007 #include <iostream> #include <conio.h> using namespace std; int main() { int maximum, LiczbaKoncowa, wybierz; cout<<"Wpisz z jakiego zakresu liczb ma losowac program\n"; cout<<"\nWpisz '1', zeby wylosowac liczbe z zakresu 0-4\n"; cout<<"\nWpisz '2', zeby wylosowac liczbe z zakresu 0-6\n"; cout<<"\nWpisz '3', zeby wylosowac liczbe z zakresu 0-8\n"; cout<<"\nWpisz '4', zeby wylosowac liczbe z zakresu 0-10\n"; cout<<"\nWpisz '5', zeby wylosowac liczbe z zakresu 0-12\n"; cout<<"\nWpisz '6', zeby wylosowac liczbe z zakresu 0-20\n"; cout<<"\nWpisz '7', zeby wylosowac liczbe z zakresu 0-100\n"; cin>>wybierz; switch(wybierz) { case 1: maximum = 4; break; case 2: maximum = 6; break; case 3: maximum = 8; break; case 4: maximum = 10; break; case 5: maximum = 12; break; case 6: maximum = 20; break; case 7: maximum = 100; break; } srand(time(NULL)); LiczbaKoncowa = rand() % maximum + 1; cout << "Wylosowana liczba: " << LiczbaKoncowa; getch(); return 0; } Cała filozofia. Losować losuje. O to Ci chodziło ? Niewiem tylko po co zmienną wybierz zadeklarowałeś jako string skoro wpisujesz liczby. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się