Programm ist zu kompliziert!
-
dreaddy schrieb:
char* == char* ist böse, vor allem in Programmbeispielen wenn ma nicht weiss das das nicht geht
ich weiss, dass es nicht geht. hatte keine lust den code länger zu machnen, da
1. es fürh war als ich das schrieb und deswegen noch halb im schlaf
2. er auch seinen eigenen verstand benutzen solleine map ist auch 'ne gute idee
-
@INTEGER:
Garnicht schön, das in eine Textdatei einzulesen ist viel sinnvoller, sonst sieht der Code nur unnötig hässlich aus...
-
Habs erstmal INTEGER versucht. Nur einen (bestimmt lächerlichen)Fehler hab ich nicht rausgekriegt.
x = DeinZufallszahlgenerator(0 bis 5);
25 F:\c++\pro\franz2\main2.cpp
parse error before numeric constant
-
char* x = "DeinZufallszahlgenerator(0 bis 5)"; // du hast die "" vergessen!
Mit dem bößen char*
Oder mach ne INTEGER (int) Funktion, die einen booleschen (heisst das so? oder boolschen :D) Wert zurückliefert, z.b.:
if (ueberpruefen == 0) cout <<"Richtig!"; else cout <<"Falsch!";
LOL, vielleicht geht's ja, habs net ausprobiert
-
Natürlich musst du erst die Funktion DeinZufallszahlgenerator() definieren, um sie anwenden zu können.
Oder du benutzt den Zufallsgenerator der Standardbiliothek.#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(NULL)); cout << rand()%6; }
-
Hmm mit "" gehts auch net.
5 F:\c++\pro\franz2\main2.cpp `main' must return `int'
F:\c++\pro\franz2\main2.cpp [Warning] In function `int main(...)':
25 F:\c++\pro\franz2\main2.cpp invalid conversion from `const char*' to `int'
F:\c++\pro\franz2\Makefile.win [Build Error] [main2.o] Error 1
#include <iostream>
using namespace std;void main()
{
int x;
char *dt[5];
char *fr[5];
char *eingabe;
dt[0]="ich";
dt[1]="du";
dt[2]="er";
dt[3]="wir";
dt[4]="ihr";
dt[5]="sie (m.)";
fr[0]="je";
fr[1]="tu";
fr[2]="il";
fr[3]="nous";
fr[4]="vous";
fr[5]="ils";while (eingabe != "exit")
{
x = "DeinZufallszahlgenerator(0 bis 5)";
cin >> eingabe;
if (eingabe == fr[x])
cout<<"richtig!\n";
else
{
cout<<"falsch!\n" ;
return 0;
}
}
}
-
also entwerde du setzt ein int vor die main() oder du nimmst das return 0 raus
x = "DeinZufallszahlgenerator(0 bis 5)";
das geht so nicht. du versuchst da ein character in ein integer umzuwandeln
ich denke mal deinZufallszahlgenerator soll ne funktion sein oder?x = deineFunktion();
dann muss das so lauten. wobei die Funktion einen int-wert zurückgeben muss
-
#include <iostream> #include <cstdlib> #include <string> #include <ctime> using namespace std; // deine Funktion int DeinZufallszahlgenerator() { srand(time(NULL)); return rand()%6; } int main() { int x; char* dt[5]; char* fr[5]; string eingabe; dt[0]="ich"; dt[1]="du"; dt[2]="er"; dt[3]="wir"; dt[4]="ihr"; dt[5]="sie (m.)"; fr[0]="je"; fr[1]="tu"; fr[2]="il"; fr[3]="nous"; fr[4]="vous"; fr[5]="ils"; while (eingabe != "exit") { x = DeinZufallszahlgenerator(); cout << dt[x] << "\n"; cin >> eingabe; if (eingabe == fr[x]) cout << "richtig!\n"; else { cout << "falsch!\n" ; cout << "richtig waere: " << fr[x] << "\n"; return 0; } } }
-
Das aufrufen von srand in der Funktion ist sehr ungünstig. Das sollte nämlich nur einmal im Programm passieren. Du tust es aber vor jedem Aufruf und wenn die Zeitschritte zwischen zwei Aufrufen so klein sind, daß time keinen Unterschied feststellt kriegst Du die gleiche Zahl geliefert.
Probier mal ein
int array[100];
for(int i=0; i<100; ++i)
array[i] = DeinZufallsgenerator();und laß Dir danach das Array ausgeben.
MfG Jester
-
Jester schrieb:
Das aufrufen von srand in der Funktion ist sehr ungünstig. Das sollte nämlich nur einmal im Programm passieren. Du tust es aber vor jedem Aufruf und wenn die Zeitschritte zwischen zwei Aufrufen so klein sind, daß time keinen Unterschied feststellt kriegst Du die gleiche Zahl geliefert.
Probier mal ein
int array[100];
for(int i=0; i<100; ++i)
array[i] = DeinZufallsgenerator();und laß Dir danach das Array ausgeben.
MfG Jester
Ja, das stimmt. Man kann srand() auch manuell beim Start des Programms ausführen lassen.
Ich habe schon lange nicht mehr mit Randoms gearbeitet
-
Danke für die schnellen Verbesserung! Dann kann ich ja übers Wochende richtig büffeln bzw. spielen (EA GAMES present: "VOKABOLATOR"). Ok der war sch***** aber Hauptsache ich lern irgendwann mal programmieren.
Gruss Axo