Problem z programem do losowania liczb
Ostatnio zmodyfikowano 2012-06-26 23:53
xevuel |
» 2012-06-26 23:07:44 Naucz się cierpliwości. Jeden kolega ostatnio bardzo fajnie podsumował takie zachowanie. Problem z pętlą. Wyrzuć tamtą linijkę i na początku main'a wstaw srand( time( NULL ) ); :) |
|
Benu1 Temat założony przez niniejszego użytkownika |
» 2012-06-26 23:10:23 Jak wstawie to w funkcje main to jak mi bedzie pobierac w funkcji tej u gory?;/ nie pobiera;/ |
|
Marcinowy |
» 2012-06-26 23:11:11 Spróbuj tak: int funkcja_losujaca() { srand( time( NULL ) ); return( rand() % 60 ) + 50; }
Ale losowe_liczby to liczba z podanego przedziału, czyli zwraca to samo. //Edit2: nadal jest ten sam błąd przy kompilacji? Z tym srandem w 9 linijce? |
|
Benu1 Temat założony przez niniejszego użytkownika |
» 2012-06-26 23:12:06 marcinek nie smiga tak to po 1 po 2 ma zwracac losowe_liczby..
@xevuel Jestem cierpliwi i czekam na fajne porady i wytlumaczenia |
|
SeaMonster131 |
» 2012-06-26 23:15:48 twoja funkcja() { rand() }
..
int main() { srand( time( NULL ) ); ... }
? |
|
Benu1 Temat założony przez niniejszego użytkownika |
» 2012-06-26 23:17:54 Boshe seamonster jesli dodam ta linijke do maina to w funkcji mi jej nie wylapie a o to masz dowod, zrobie tak jak ty mi kazales:
W ogole to dam od nowa skrypt bo bledow a bledow mam :
#include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> #include "time.h" #include "cstdlib" using namespace std;
int funkcja_losujaca() { int losowanie_liczby; losowanie_liczby =( rand() % 60 ) + 50; return losowanie_liczby; }
int main() srand( time( NULL ) ); { int wywolanie, wywolanie_ponowne; string tak, nie; string TAK, NIE; cout << "Liczba zostala juz wylosowana" << endl; cout << "Czy chcesz wywolac funkcje?\nNapisz tak lub nie: " << endl; cout << "Wybierasz: "; cin >> wywolanie; switch( wywolanie ) { case 'tak': cout << "Wylosowana liczba to: " << funkcja_losujaca() << endl; case 'nie': cout << "To nie. Laski bez xD" << endl; getch(); } if( wywolanie == 'tak' ) { do { cout << "A moze chcesz jeszcze raz wywolac funkcje? " << endl; cout << "Jesli chcesz to napisz T, jesli napiszesz N to program konczy dzialanie: " << endl; cin >> wywolanie_ponowne; switch( wywolanie_ponowne ) { case 'TAK': cout << "Ponownie wylosowana liczba to: " << funkcja_losujaca() << endl; case 'NIE': cout << "W takim razie dziekuje" << endl; getch(); } } while( wywolanie_ponowne == 'N' ); } return 0; }
Dziwne ze mi wywala bledy mam dobra zmienna przeciez string to ciag znakow nie rozumiem prosze o wytlumaczenie i poprawienie oraz naprawde sranda.
podaje bledy :
D:\C++\Prace domowe.cpp|32|warning: multi-character character constant|
D:\C++\Prace domowe.cpp|35|warning: multi-character character constant|
D:\C++\Prace domowe.cpp|39|warning: multi-character character constant|
D:\C++\Prace domowe.cpp|48|warning: multi-character character constant|
D:\C++\Prace domowe.cpp|51|warning: multi-character character constant|
D:\C++\Prace domowe.cpp|20|error: expected initializer before 'srand'|
D:\C++\Prace domowe.cpp|21|error: expected unqualified-id before '{' token|
||=== Build finished: 2 errors, 5 warnings ===|
@edit
seamonster nie moge w mojej funkcji po prostu napisac rand() bo to nie ma byc losowa liczba tylko ma losowac licze z przedzialu od 50 do 60 |
|
Marcinowy |
» 2012-06-26 23:20:51 Wydaje mi się, że jemu chodziło po prostu o sam przykład, w swojej funkcji do losowania dajesz randa z jakiego przedziału a sranda wywołujesz raz, w funkcji main. |
|
SeaMonster131 |
» 2012-06-26 23:21:19 Nie tak: tylko I ja tylko pisze pseudokodem :) Co do błędów, char jest to jeden znak i umieszczasz go w '' np 'c', string to ciąg znaków "" np "ciag znakow". Nie możesz dać ciągu znaków w ''. |
|
1 « 2 » 3 4 |