Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Struktury a funkcje

Ostatnio zmodyfikowano 2012-11-22 13:30
Autor Wiadomość
Hipochondryk
Temat założony przez niniejszego użytkownika
Struktury a funkcje
» 2012-11-21 23:27:10
Witam,

C/C++
/* Wykonal Artur Lisowski
   Arturlisowski94@o2.pl
  
   Nazwa:
   Data:
   Opis:
*/

//te pliki naglowkowe beda potrzebne w dalszej czesci algorytmu
#include <iostream>
#include <string>
#include <conio.h>
#include <time.h>
#include <windows.h>



using namespace std;

//struktura skok
struct skok
{
    char ini1;
    char ini2;
    int dlug;
};



void los( skok & str ) // losuje wartosci dla struktury.
{
    srand( time( NULL ) );
    str.ini1 =( char )(( rand() % 25 ) + 65 ); // ma losowac inicjaly skoczka, 1 litera
    str.ini2 =( char )(( rand() % 25 ) + 65 ); //druga litera inicjalu
    str.dlug =( rand() % 100 ) + 40; //losuje dlugosc skoku
}
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 ); //wylacza bufor cout/cin przyspieszajac algorytm. Ta funkcja nie                              //jest winowajcą
    SetConsoleTitle( "Wykonal Artur Lisowski" );
   
    skok skoczkowie;
   
    los( skoczkowie );
    wypisz( skoczkowie );
    los( skoczkowie );
    wypisz( skoczkowie );
    //i tutaj problem  wypisuje to samo 2x
   
   
    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 ?
P-69677
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
 ;> ?
P-69678
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.
P-69682
xevuel
» 2012-11-22 07:46:55
Wywal je jeszcze z funkcji los().
P-69683
Hipochondryk
Temat założony przez niniejszego użytkownika
» 2012-11-22 13:30:31
ok, działa dzięki ;\)
P-69688
« 1 »
  Strona 1 z 1