Problem mit srand/rand
-
Hallo zusammen!
Ich hab hier ein Problem mit der erzeugung meiner Zufallszahlen. Nachdem ich beim Debugen des u.a. Programms immer den Fehler "error C2440: '=': 'int (__cdecl *)(void)' kann nicht in 'int' konvertiert werden" bekomme, habe ich schon mal alle möglichen Foren dursucht. Aber irgendwie stoße ich immer darauf, daß es in den Beispielprogrammen da genau so aufgebaut ist wie bei mir!
Kann mir jemand weiter helfen und mir sagen wo hier das Problem liegt?
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <time.h>int main(){
srand( time(NULL) );
int i,x;
for (i=0;i<10;i++){
x=rand;
printf("%d. Zufallszahl: %d\n",i+1,rand());
}printf("\n\n");
system("pause");
}Danke!!!!
Greetz
Andreas
-
Zeile
x=rand;
durch
x=rand();
ersetzten#include <iostream>
brauchst du auch nicht (nicht ANSI C)
-
Verdammt! Die Zeile hatte ich ganz vergessen!
Hatte ursprünglich den ZUfallswert in die Var x schreiben wollen um dann über Printf x ausgeben zu lassen. Da ich das aber geändert hatte, hab ich irgendwie die Zeile nicht mehr auf dem Schirm gehabt!#include <iostream> brauch ich für mein system("pause")
Vielen Dank!!!
-
Schunki schrieb:
#include <iostream> brauch ich für mein system("pause")
Nein.
system()
wird in stdlib.h deklariert. Bei vielen Compilern wird stdlib.h zudem nicht durch iostream (welches übrigens ein reiner C++-Header ist) eingebunden.Merke: Binde immer genau die Header ein, die du brauchst. Und zwar alle. Verlasse dich nie darauf, dass ein bestimmter Systemheader einen anderen Systemheader einbindet. Das geht praktisch bei jedem Compilerwechsel (oder Update) schief.
-
Das Problem ist ja gelöst. Aber die Fehlermeldung des Compilers zu interpretieren, kann auch hilfreich sein.
Er sagt ja nichts anderes, als dass versucht wird, einem int ein Funktionspointer zu übergeben (rand ist Pointer auf rand() Funktion).
gcc hat auch sicher eine Zeilennummer genannt. Es sollte einfach sein, sowas zu finden und man muss nicht wegen solchen Kleinigkeiten in einem Webforum nachfragen (nur so als Hinweis, falls Du mal offline programmierst).