Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » randomize()

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
18.12.2003, 23:48 Uhr
lubU




C++:
#include<stdlib.h>
#inlcude<conio.h>
#inlcude<stdlib.h>

//*** das funktioniert:
int main()
{

randomize();
printf("Zahl: %d", random (10));
getch();

return 0;
}

//*** das nicht:

int main()
{
int zahl;
zahl = random (10);
randomize();
printf("Zahl: %d", zahl);

return 0;
}




Wieso ?

Dieser Post wurde am 18.12.2003 um 23:52 Uhr von lubU editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.12.2003, 23:54 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ist nicht gerade anis-c was du da machen willst

C++:
#include <stdio.h>
#include <time.h>
int main(){
srand(time(NULL));
int zahl=rand()%10;//zufallszahl von 0...9
printf("Zahl: %d", zahl);
}


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 18.12.2003 um 23:54 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.12.2003, 00:03 Uhr
lubU



#include<stdlib.h> haste vergessen.

was macht eigentlich das time(NULL) ?

und wieso is mein obiger versuch kein ansi-c
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.12.2003, 01:22 Uhr
Pablo
Supertux
(Operator)


conio.h sagt schon, dass es nur unter DOS kompilierbar ist.

Es gibt in ANSI C keine Funktion randomize();
Um printf zu benutzen, müsste man stdio.h includieren.


Computer können keine Zufällige Zahlen berechnen. Probiere mal das:


C++:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    for(i=0; i<11; ++i)
        printf("%d\n", rand());
    return 0;
}



Führe 2 oder 3 Mal hintereinander. Die Zahlen sind immer gleich, d.h die Reihe der Zufallszahlen ist stets gleich. Das liegt daran, dass Computer die Zahlen nicht zufällig generieren, sondern dass sie feste Reihen von Zahlen haben, die man bekommt, wenn man rand() aufruft.

Um dieses Problem umgehen zu können, gibt es die Funktion srand. srand initialisert eine Liste bzgl des Parameters. Die Reihen der Zufallszahlen änder sich, wenn das Parameter sich ändert.

Die Funktion time(NULL) liefert die Anzahl der vergangen Sekunden seit dem 1. Januar 1970. Da diese Zahl sich jede Sekunde ändert, können wir mit time(NULL) unsere Zufallszahlen-Reihe initialisieren, denn die Programme niemals in der selben Zeit aufgerufen werden und time(NULL) sich ständig ändert.

Jetzt füge srand(time(NULL)); nach int i; ein und führe das 3 oder 4 mal aus. Änderen sich die Zahlen?

C++:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    srand(time(NULL));
    for(i=0; i<11; ++i)
        printf("%d\n", rand());
    return 0;
}




Bearbeitung von FloSoft:

Hab nun mal deine printf-Schleife geändert

C++:
printf(i=0; i<11; ++i)





--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.12.2003 um 18:51 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.12.2003, 18:09 Uhr
0xdeadbeef
Gott
(Operator)


printf(i=0; i<11; ++i)? Das dürfte nicht funzen. Du meinst:

C++:
for(i=0; i<11; ++i)


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.12.2003, 18:30 Uhr
Checker



also wegen der conio.h, also ich kann sie auch in win... anwendungen compelieren.
Ich benutze sie für den befehl getch(), aber in meiner Borland Hilfe steht auch man solle diesen nicht in win... programmen anwenden. Was kann mir da passieren?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.12.2003, 18:33 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Der ANSI-C-Teufel erscheint, entmagnetisiert deine Festplatte und grillt dich danach auf kleiner Flamme...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 19.12.2003 um 18:36 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.12.2003, 18:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


@Windalf: meinst du 0xdeadbeef?

conio.h funktioniert nur unter Windows, für Linux gibt es sie, soweit ich glaube, nicht.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.12.2003, 18:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Flo
ich hatte mehr an virtual gedacht weil der eher auf die Palme geht wenn der was nicht standardkonformes sieht...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.12.2003, 20:54 Uhr
Pablo
Supertux
(Operator)


mann, bin ich aber dämlich!!!! Ich hab nicht gemerkt, dass ich printf statt for geschrieben hab
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 19.12.2003 um 20:54 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: