Zufallszahl 1-100
-
Wenn du eine nicht 100% gleichverteilte Zufallszahl haben willst:
srand(time(0)); int i=rand()%100+1;
-
Ich denke mal, sein Fehler liegt darin, dass er nicht die notwendigen Header inkludiert. Wenn er also nicht den kompletten Artikel von Marcus lesen will und die Zahlen nicht 100% gleichverteilt sein müssen, dann (siehe Posting über mir, nur als komplettes Programm):
#include <iostream> #include <cstdlib> using namespace std; int main(void) { int Zufallszahl = (rand()%100)+1; cout << Zufallszahl << endl; return 0; }
Oder mit srand(), damit nicht bei jedem Durchlauf des Programms die gleiche "Zufallszahl" erzeugt wird
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main(void) { srand(static_cast<int>(time(0))); int Zufallszahl = (rand()%100)+1; cout << Zufallszahl << endl; return 0; }
Felix
-
Storm.Xapek.de schrieb:
Ever-Frost schrieb:
Ok ich versuche auch die n bissel um zuschreiben, weil ich eine Zufallszahl von 1-100 brauche aber daran kanns ja nich liegen :S
Hä?
Drück dich bitte verständlicher aus,
und poste mal wo den genau dein Problem liegt.Also eine konkrete Frage mit zugehörigem Code
und den Fehlermeldungen.Ich habe die gefundenen codes versucht umzuschreiben damit ich eine Zufallszahl von 1-100 bekomme. Das schaffe ich aber nicht. Frage: wie mache ich das?
Ich versuche grade ein Programm für meine kleine schwester (6) zum "spielen" zu schreiben. Mr. X nennen die das in der Schule: jemand denkt sich eine Zahl zwischen 1 und 100 aus und dann werden Zahlen vorgeschlagen. Als Tipp wird dann immer < oder > gesagt. So und sie nervt mich ziemlich mit diesem Spiel also wollte ich das ein Programm für mich machen lassen
Aber ich werde jez ma Markus artikel lesen und die geposteten codes in meinen code versuchen zu schreiben. Da steht bisher nu, dass die spielregeln ausgegeben werden und das funzt auch.
Danke für eure antworten!
-
Hallo
Hä?? Die codes waren doch schon für Zufallszahlen zwischen 1 und 100. Zeig doch endlich mal etwas geschriebenen Code. das wurde doch auch schon ein paarmal geschrieben. Mit dessen Hilfe kann dir dann sicher auch geholfen werden.
chrische
-
#include <iostream> using namespace std; int main () { char *ende; cout << "Ich denke mir eine Zahl zwischen 1 und 100 aus. Und du musst versuchen sie zu erraten! Also dann =)\n"; cin.get(); } int main(void) { int Zufallszahl = (rand()%100)+1; cout << Zufallszahl << endl; return 0; }
... geht trotzdem nicht...
Ausserdem hatte ich schon einen Teilcode gepostet
Das andere is doch nur die "Sielregel"...
-
ok, falsch, Grundlagentutorial machen bitte.
es gibt nur eine main (genauer gesagt int main) Funktion pro Programm.
EDIT: du brauchst für dein Programm eine while-Schleife, eine if-Anweisung und natürlich das mit dem Zufall. Der Anfang wäre so:
#include <cstdlib> #include <ctime> using namespace std; int main(void) { srand(time(0)); int zahl = rand()%100+1; return 0; }
Damit hast du eine Zufallszahl (sie steht in der Variablen zahl) Du musst dir jetzt dahinter nur noch die Abfrage und die Ausgabe von kleiner groeszer richtig schreiben.
-
Hallo
Du solltest unbedingt ganz von vorne anfangen. Bitte nimm mir dies nicht übel, aber dann machst du es gleich richtig und schreibst keine 2 main-Funktionen.
chrische
-
Machs halt so
#include <iostream> using namespace std; void Aufgabenstellung () { char *ende; //was bringt das denn? cout << "Ich denke mir eine Zahl zwischen 1 und 100 aus. Und du musst versuchen sie zu erraten! Also dann =)\n"; cin.get(); } int main(void) { Aufgabenstellung (); // führt obriges aus int Zufallszahl = (rand()%100)+1; //Zufallszahl von 0-100 cout << Zufallszahl << endl; return 0; }
-
@Kaffee: Ohne das char*ende gings bei mir nich... Bei deinem bekomm ich aber nen haufen fehlermeldungen wenn ichs genauso kopiere und ausprobiere:
cpp: In function
int main()': cpp:14: parse error before
int'
cpp:15:Zufallszahl' undeclared (first use this function) cpp:15: (Each undeclared identifier is reported only once cpp:15: for each function it appears in.) cpp:16: implicit declaration of function
int system(...)'@Shinja : Käme die Aufgabe und so dann hinter den code den du geposted hast?
@chrische5: Tu ich nich... Muss ich auch wohl
-
Ever-Frost schrieb:
@chrische5: Tu ich nich... Muss ich auch wohl
Kannst du das auf deutsch übersetzen? Ich probiere es mal: mach ich nicht, weil ich es nicht brauche. Ist das richtig?
Da fehlt ein Semikolon nach dem Funktionsaufruf:
Aufgabenstellung();
Das kannst du aber auch selber merken.
chrische
-
Nein, ich nehme es dir nich übel und muss ich wohl war darauf bezogen dass ich das neu machen muss
Oh man... stimmt, sry^^
-
dann hab ich aber imma noch fehler.... Oh, man ich glaub ich setz mich da heut abend nochma in ruher dran
-
chrische5 schrieb:
Da fehlt ein Semikolon nach dem Funktionsaufruf:
Aufgabenstellung();
Oh sry hab ich vergessen hinzuschreiben
Edit: Warum sollte das ohne *char ende nicht funktionieren?
-
Hallo
Ever-frost schrieb:
dann hab ich aber imma noch fehler.... Oh, man ich glaub ich setz mich da heut abend nochma in ruher dran
Zum achten Mal: Zeig die Fehler, zeig den Code.
chrische
-
Ever-frost schrieb:
dann hab ich aber imma noch fehler.... Oh, man ich glaub ich setz mich da heut abend nochma in ruher dran
Außer dem Semikolon funktionierts bei mir.
Zeig die Fehler!
-
@Kaffee: Jez is es nur noch einer
implicit declaration of function `int rand(...)'
Und ich weiß nich warums ohne char*ende nich gefunzt hatte, das hatten wir halt so in der schule mal und ich habs ausprobiert und dann gings
@chrische5 : Ich zeig euch doch Codes und Fehler o.0
-
Hallo
Nun müsstest du nur noch den entsprechenden Code zeigen. Am Besten per paste© aus dem Editor ins Forum.
chrische
-
Der Code war doch der von Kaffee... mom
#include <iostream> using namespace std; void Aufgabenstellung () { char *ende; //was bringt das denn? cout << "Ich denke mir eine Zahl zwischen 1 und 100 aus. Und du musst versuchen sie zu erraten! Also dann =)\n"; cin.get(); } int main(void) { Aufgabenstellung (); // führt obriges aus int Zufallszahl = (rand()%100)+1; //Zufallszahl von 0-100 cout << Zufallszahl << endl; return 0; }
-
Da fehlt eindeutig ein 'include <cstdlib>' am Programmanfang - und es wäre eine gute Idee, nach dem Programmstart mal srand() aufzurufen
(und das 'char* ende;' hat keine Auswirkungen)
-
Ever-Frost schrieb:
int Zufallszahl = (rand()%100)+1; //Zufallszahl von 0-100
Ja, mit solchen Kommentaren kann man sich schön selbst verarschen. Wie soll denn da bitte jemals die 0 bei rauskommen?