Zufallszahlen erstellen lassen C++

J

Joergi

Aktives Mitglied
Thread Starter
Dabei seit
20.09.2003
Beiträge
156
Reaktionspunkte
0
Wie kann ich mir mit XCode Zufallszahlen erstellen lassen. Mit randomize, wie wir das auf dem Borland compiler gelernt haben, funzt das nicht.
Die stdlib ist includiert. Ich brauch 3 Zufallszahlen und XCode sagt "error "at this point in file" , "error "randomize" cannot be usedas a function" und in der 3. Version "error "too many arguments to funktion "long int random()".
Nach x verschiedenen Versuchen sieht das jetzt schon aus, als würde das nie gehen. Weis mir schon keinen Rat mehr, in anderen Foren hab ich auch nix gefunden. Weis jemand Rat ???
#include <iostream>
#include <stdio.h>
#include <curses.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>

int main ()
{
int wurf1,wurf2,wurf3,sum,gewinn,ergebnis;
int randomize,zaehler;



for (zaehler=0;zaehler<10;zaehler++)

wurf1=random(1,6);
wurf2=random(1,6);
wurf3=random(1,6);

sum=wurf1+wurf2+wurf3;


if (sum<=14)gewinn=0;
if (sum=15)gewinn=2;
if (sum=16)gewinn=5;
if (sum=17)gewinn=6;
if (sum=18)gewinn=100;

ergebnis=ergebnis+(gewinn-1);
printf("Das ist das %d Spiel",sum);
printf("GEWINN %d \n ",gewinn);





return 0;
}
 
Ich kenne mich zwar nicht mit c++ aus aber in C heisst der Befehl nur rand oder srand
 
Im Borland C (Windows) gab es damals randomize() und Randomize() , dunkle Erinnerungen tauchen auf...

randomize() != Randomize() !!!

EDIT:
Moment mal... wieso hast Du da ein "int randomize, ..." ?
Definiert man nicht Variablen mit "int ..." ?
Falls es eine Funktion dieses Namens gibt, kann es keine gleichnamige Variable geben - oder komme ich grad wieder mit C ducheinander? (Hab es nie richtig kapiert... Vererbung war eine ganz tolle Sache - wenn man verstanden hatte wie es funktioniert. Und das hab ich leider nie :hum:)
Gruss
-theHobbit-
 
Zuletzt bearbeitet:
Danke, aber das habe ich schon probiert, da kommen dieselben error messages wie ich sie voran schon gepostet habe.:(
 
Nimm doch einfach einen Würfel! :hehehe:
 
Ich habe jetzt nicht Xcode angeworfen, sondern mit dem Editor meiner Wahl deinen Code korrigiert.

Code:
#include <stdio.h>
#include <curses.h>
#include <math.h>
#include <stdlib.h>

int main (int argc, char **argv)
{
	int i, zaehler, sum, gewinn, ergebnis = 0;

	// Zufallesgenerator initialisieren
	srandomdev();
	
	for (zaehler = 0; zaehler < 10; zaehler++)
	{
		sum = 0;
		
		// Drei Wuerfe
		for (i = 0; i < 3; i++)
			sum += (random() & 5) + 1;
		
		// Gewinnberechnung
		if ( sum <= 14 ) gewinn = 0;
		if ( sum == 15 ) gewinn = 2;
		if ( sum == 16 ) gewinn = 5;
		if ( sum == 17 ) gewinn = 6;
		if ( sum == 18 ) gewinn = 100;

		ergebnis += gewinn;
		
		printf("Das ist das %d. Spiel, Gewinn: %d\n", zaehler, gewinn);
	}

	printf("Du konntest in %d Spielen einen Gewinn von %d erzielen.\n", zaehler, ergebnis);
	
	return 0;
}

Zuerst einmal ist der Vergleichsoperator bei C == und nicht =. Mit = weist du der Variable sum ständig neue Werte zu, das willst du nicht. Außerdem fehlen bei deiner for-Schleife ein paar wichtige Klammern.
srandomdev() initalisiert einen Zufallsgenerator, der recht zuverlässig solche Pseudozufallszahlen erzeugt. random() schließlich hat keine Parameter (siehe "man random"). Um im Würfelbereich zu bleiben, MODen wir die Zufallszahl mit 5 und addieren eins drauf, d.h. das Ergebnis liegt zwischen 1 und 6.
 
Zuletzt bearbeitet:
Das wäre ja zu einfach, vor allem erkläre das meinem Dotzenten:hehehe:
 
Das sieht verdammt gut aus, was bedeudet das "argc" und "argv" in der Klammer des main? Scheint irgend ein Integer zu sein, aber für was:kopfkratz: Sorry, wir haben erst vorige Woche angefangen zu programieren. Aber das werde ich gleich mal probieren. Kann mir jemand sagen warum das in der Ausbildung so einfach geht und an meinem Apfel ist der Wurm drin :mad:
 
Joergi schrieb:
Das sieht verdammt gut aus, was bedeudet das "argc" und "argv" in der Klammer des main? Scheint irgend ein Integer zu sein, aber für was:kopfkratz: Sorry, wir haben erst vorige Woche angefangen zu programieren. Aber das werde ich gleich mal probieren. Kann mir jemand sagen warum das in der Ausbildung so einfach geht und an meinem Apfel ist der Wurm drin :mad:
Das argc ist die Anzahl der Argumente, die das Programm von der Kommandozeile übergeben bekommt. argv ist das zugehörige Pointer-Array, über das du auf die Argumente zugreifen kannst.
Du kannst die Klammer auch leeren, ich füge das nur immer der Vollständigkeit halber ein.

Was hat das mit Apple zu tun? Ich habe das Programm auf meinem Apple geschrieben. ;)
Vielleicht interpretiert der Compiler von Borland einiges anders, aber ich vertraue da eher auf gcc. Da kannst du deinem Apple wirklich keinen Vorwurf machen. ;)
 
Joergi schrieb:
Das sieht verdammt gut aus, was bedeudet das "argc" und "argv" in der Klammer des main? Scheint irgend ein Integer zu sein, aber für was:kopfkratz: Sorry, wir haben erst vorige Woche angefangen zu programieren. Aber das werde ich gleich mal probieren. Kann mir jemand sagen warum das in der Ausbildung so einfach geht und an meinem Apfel ist der Wurm drin :mad:
tach Joergi

du verwechselst da was int main() heisst das die Funktion main ein int zurückliefert.
Das was da in Klammer steht sind die Werte die du main übergibst, hier ein int und ein char (kannst du in dem Programm aber weglassen und einfach int main() schreiben)

P.S.: wie letzte Woche schon mal erwähnt ist an deinem Apfel keinesfalls der Wurm drin, ihr lernt nur nicht plattformunabhängig programmieren (was eigentlich gar nicht soo schwer wäre)


edit: too late
 
Nein den Vorwurf bringe ich nicht auf meinem Appel, sondern auf mich selbst, da ich auf ihm noch nie programiert habe und wir in der Ausbildung einfach nur das andere System verwenden. Ich bekomme das halt nicht gebacken, das ich Tags über etwas neues lerne, möchte es abends ausprobieren und muß mich als erstes schlau machen wie ich das selbe abändern muß das es bei mir läuft. Das ist echt schwer.
 
Joergi schrieb:
...und muß mich als erstes schlau machen wie ich das selbe abändern muß das es bei mir läuft. Das ist echt schwer.
dabei lernst du nur was ;)
 
Hallöchen, mein Retter von voriger Woche aus der Not:) . Wenn das auf meinem Apfel zum laufen kommt, ist das dann Plattformunabhängig? So das es auf Dosen unter Sinnlos XP und Linux läuft, oder gibt es da auch wieder Unterschiede?
 
Joergi schrieb:
Hallöchen, mein Retter von voriger Woche aus der Not:) . Wenn das auf meinem Apfel zum laufen kommt, ist das dann Plattformunabhängig? So das es auf Dosen unter Sinnlos XP und Linux läuft, oder gibt es da auch wieder Unterschiede?
lernst du nach irgendeinem Buch??? Da sollte eigentlich von ANSI-C drin stehen. Das ist -grob gesagt- der kleinste gemeinsame Nenner. Alles was in ANSI C geschrieben ist sollte jeder C-Compiler verstehen
 
Wir haben ein kleines Handbuch bekommen, das heist " C Programmieren von Anfang an" Grundkurs Computerpraxis von Helmut Erlenkötter. Das wird aber nicht groß verwendet, meistens bekommen wir nur packenweise Scripte vorgeworfen und dann hilf dir selbst :mad: . Aber vieleicht lernt man da eher noch was, wenn man sich alles selbst erabeiten muß.
 
Joergi schrieb:
Wir haben ein kleines Handbuch bekommen, das heist " C Programmieren von Anfang an" Grundkurs Computerpraxis von Helmut Erlenkötter.
du hast ne PN
 
Der Erlenkötter hat ja bei Amazon immerhin 4.5 Sterne, vielleicht solltest du den bei Fragen einfach öfter konsultieren. ;)
 
Sagen wir mal so was du auf deinem Apple Proggst und mit dem gcc kompilierst sollte eigentlich auch auf jedem Linux Windows … blubb Rechner laufen wenn da mit dem gcc Kompiliert wird … Wenn ich das damals richtig verstanden habe (sry bin Java Fan ;) )
Ich verstehen nur nicht warum irgendwo etwas gelehrt wird was nicht mit dem Standart Linux Mac Windows Compiler lauffähig ist (gcc)…
 
Ischi schrieb:
Sagen wir mal so was du auf deinem Apple Proggst und mit dem gcc kompilierst sollte eigentlich auch auf jedem Linux Windows
nicht unbedingt, kommt halt drauf an ob die Libs die du inkludierst auch auf dem Zielsystem vorhanden sind ;)
 
Bei uns erntet man in der Ausbildung nur dickes und lautes Gelächter wenn man erwähnt das man auf Apple arbeitet und man muß sich zum Bsp auch Fragen anhören wie "Kannst dir keinen vernünftigen Rechner leisten mit dem man auch was anderes machen kann, als dieses nur als Stehlampe zu verwenden". Das nervt übel, kannste glauben, aber ich steh trotzdem dazu.:mad:
 
Zurück
Oben Unten