Zufallszahlen :((
-
Hallo.
Ich verzweifle gerade an einer ganz einfachen, simplen Zufallszahl.
Eine Zufallszahl, zwischen 1 und 100 (inkl. 1 und 100) hätte ich nie für so ein Problem gefunden.
Nach einigen Internetseiten, die alle irgendwelchen Mathe Kram verzapfen den kein normaler Mensch versteht, ohne Mathe studiert zu haben, habe ich nun folgendes gefunden:
int zufallszahl; srand(time(NULL)); do{ zufallszahl = rand() % 100; ... }
ohne srand(time(NULL)); geht es, erzeugt aber immer die gleichen Zahlen.
Baue ich srand(time(NULL)); wieder ein, erzählt mir M$ Visual C++ 6 etwas von "error C2064: Ausdruck ergibt keine Funkion".Das o.g. Beispiel steht so auf ziemlich vielen Internetseiten.
Merkwürdigerweise binden die alle andere #includes ein, aber der Code ist immer der gleiche.
Ich hab auch jetzt schon alle möglichen #includes durchprobiert, keine Änderung."Ausdruck ergibt keine Funkion" erzeugt bei mir aber ein dickes Fragewort mit 2 Buchstaben: HÄ ?!?
Sucht man in Google nach dem Fehler, landet man auf einer schlecht übersetzen M$ seite, die warscheinlich in der Orginalversion mal erzähen wollte, dass man in der stdafx.h die Zeile #define VC_EXTRALEAN entfernen soll.
Nicht verstanden, trotzdem gemacht, gleicher Fehler.mfg
trequ
-
#include <stdlib.h> #include <stdio.h> #include <time.h> int main() { srand((unsigned)time(NULL)); for(int i = 0; i < 10; ++i) { printf("%d\r\n", rand()); } }
Sollte funktionieren und gibt dir hier 10 Zufallszahlen zwischen 0 und RAND_MAX aus. Allerdings hat das rein gar nix mit der MFC zu tun. Das gehört eher in das C-Forum.
Grüssli
-
Zeig doch mal ein etwas ausführlicheres Code-Fragment. Wenn du die Header <cstdlib> (für rand() und srand()) und <ctime> (für time()) eingebunden und den Namensraum std:: berücksichtigt hast, sollte es eigentlich funktionieren.
-
Probiers mal hiermit:
#include <stdlib.h> #include <stdio.h> #include <time.h> #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int i; srand( (unsigned)time_t( NULL ) ); for( i = 0; i < 10;i++ ) printf( " %6d\n", rand() ); return 0; }
-
Ok, ok, ok.. ich steh schon in der Ecke und schäme mich
10 Zeilen weiter oben: int time = 350
Hätte timer heißen sollenSo kanns halt net gehen^^
Dravere schrieb:
Allerdings hat das rein gar nix mit der MFC zu tun. Das gehört eher in das C-Forum.
Für mich als Einsteiger sieht leider alles gleich aus
Ob das jetzt WinAPI C oder nur C oder C++ oder C# ist... ganz ehrlich, keine Ahnung.
Ich hab das hier her geschrieben, da bei diesem Forum MFC (Visual C++) steht und ich mit M$ Visual C++ arbeite.
-
trequ schrieb:
Für mich als Einsteiger sieht leider alles gleich aus
Ob das jetzt WinAPI C oder nur C oder C++ oder C# ist... ganz ehrlich, keine Ahnung.lol ... Du wirst aber doch wohl wissen, welche Programmiersprache du lernst. Für irgendetwas hast du dich wohl entschieden und lernst die nun oder lernst du einfach nur wild drauf los? Dann würde ich dir empfehlen, dir zuerst mal klar zu werden, was du eigentlich lernen willst
Grüssli
-
Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Dravere schrieb:
trequ schrieb:
Für mich als Einsteiger sieht leider alles gleich aus
Ob das jetzt WinAPI C oder nur C oder C++ oder C# ist... ganz ehrlich, keine Ahnung.lol ... Du wirst aber doch wohl wissen, welche Programmiersprache du lernst. Für irgendetwas hast du dich wohl entschieden und lernst die nun oder lernst du einfach nur wild drauf los? Dann würde ich dir empfehlen, dir zuerst mal klar zu werden, was du eigentlich lernen willst
GrüssliIch verwende C++ und lerne das auch grad.
Aber wenn irgendwo Google zu einem Problem ein Code-Fragment mit 5 Zeilen ausspuckt, woher soll ich denn wissen, was das jetzt für eine der 300 verschiedenen C Sorten ist?