Struktury a funkcje
Ostatnio zmodyfikowano 2012-11-22 13:30
Hipochondryk Temat założony przez niniejszego użytkownika |
Struktury a funkcje » 2012-11-21 23:27:10 Witam,
#include <iostream> #include <string> #include <conio.h> #include <time.h> #include <windows.h>
using namespace std;
struct skok { char ini1; char ini2; int dlug; };
void los( skok & str ) { srand( time( NULL ) ); str.ini1 =( char )(( rand() % 25 ) + 65 ); str.ini2 =( char )(( rand() % 25 ) + 65 ); str.dlug =( rand() % 100 ) + 40; } void inline wypisz( skok & s ) { cout << "Zawodnik : " << s.ini1 << "." << s.ini2 << " skoczyl " << s.dlug << " metry/ow" << endl; }
int main() { ios_base::sync_with_stdio( 0 ); SetConsoleTitle( "Wykonal Artur Lisowski" ); skok skoczkowie; los( skoczkowie ); wypisz( skoczkowie ); los( skoczkowie ); wypisz( skoczkowie ); cin.get(); cin.get(); return 0; }
przykladowy wydruk
Zawodnik S.S skoczyl 50 metry/ow
Zawodnik S.S skoczyl 50 metry/ow
moje pytanie brzmi dlaczego po wywolaniu funkcji los,a nastepnie wypisz nie wypisuje mi roznych wartosci losowych, tylko zawsze te same ? |
|
crash |
» 2012-11-21 23:39:23 Nie kompilowałem kodu, na oko: wrzuć srand(... do funkcji main na sam jej początek. Wiesz jak działa inline ;> ? |
|
Hipochondryk Temat założony przez niniejszego użytkownika |
» 2012-11-22 07:11:28 tak, wiem. Funkcja inline, jak sama nazwa wksazuje działa w w lini. Czyli wywołując ją w mainie, kompilator wstawia jej treść w miejsce wywołania. Celowo tak jest ponieważ będzie wywoływana jeszcze kilkukrotnie - no i w tresci zadania jest wymagane 5 funkcji. Dodanie srand( time( NULL ) ); nic nie zmieniło. |
|
xevuel |
» 2012-11-22 07:46:55 Wywal je jeszcze z funkcji los(). |
|
Hipochondryk Temat założony przez niniejszego użytkownika |
» 2012-11-22 13:30:31 ok, działa dzięki ;\) |
|
« 1 » |