If-Verzweigung
-
Hmm, jetzt hätte ich noch eine Frage. Jetzt kann ich zwar endlich Zahlne und Wörter einbauen, aber gibts da auch nen Code, um mehrere Wörter einzubauen. Beispielsweise so:
if (antwort == "Ein Test") //<----Hier
{
cout << endl << "Richtig!" << endl;
}Ja, ich weis schon. Eigentlich ist das Quiz für Wörter bestimmt. Darum auch mit string. Als leichtes Beispiel machte ich aber ausversehen eine Zahl rein.
[ Dieser Beitrag wurde am 31.08.2002 um 15:31 Uhr von Holy editiert. ]
-
Du könntest die Antwort mit einem anderen String vergleichen lassen.
string antwortrichtig ="Ein Test";
if (antwort == antwortrichtig) //<----Hier
{
cout << endl << "Richtig!" << endl;
}
-
Hmm, nö geht leider nicht. Mit einem Wort ja aber sobald es 2 sind gehts nimmer.
-
nimm mal stadt cin
getline(cin,antword);
-
hmm? wo muss ich das einsetzten? Habs ein paar mal überall getestet, aber der mag irgendiwe das Wort antword nicht
-
#include <iostream>
#include <string>
using namespace std;int main()
{string antwort;
cout << "Was ist 10 plus 10?";
getline(cin,antwort);string antwordrichtig = "hallo du";
if (antwort == antwordrichtig) //hier
{
cout << endl << "Richtig!" << endl;
}
else
{
cout << endl << "Falsch!" << endl;}
return 0;
}einzugeben ist hallo du
-
Juhuu es geht. Man muss eben zwei mal Enter drücken aber das ist ja nicht so wild
Vielmals Dank
-
Original erstellt von Holy:
Juhuu es geht. Man muss eben zwei mal Enter drücken aber das ist ja nicht so wildMusst du Bugfixen und dich bei Hume bedanken!
-
Musst du Bugfixen und dich bei Hume bedanken!
Bugfixen reicht
-
@HumeSikkins: Magst du es nicht, wenn man sich bei dir bedankt? Ist eher ungewöhnliches Verhalten.
-
Bugfixen? Was meint Ihr damit? Den Fehler finden der drinn ist?
Ähm ja, sorry, dass ich Euch schon wieder nerven muss, aber ich habe nun etwa das selbe Problem, wie vorher.
#include <iostream> #include <string> using namespace std; int main() { string antwort1; string antwort2; cout << "Frage"; cout << endl; cout << "Antwort: "; getline(cin,antwort1); // hier kommt die Antwort hin. Also mal a string antwordrichtig1 = "a"; if (antwort1 == antwordrichtig1) { cout << "Richtig! Nächste Frage cout << "Frage"; cout << endl; cout << "Antwort: "; getline(cin,antwort2); //Hier die abgeänderte Variable string antwordrichtig2 = "b"; if (antwort2 == antwordrichtig2) //hier ist das Problem. { cout << "Richtig"; cout << "Frage"; } else { cout << endl << "Falsch!\a" << endl; }
Und zwar komm ich am Anfang der "If-Bedingung" nicht weiter. Ich habe die Variable etwas geändert, damit nicht das gleiche Ergebniss wie in Frage 1 eingegeben werden muss.
Aber jetzt geht es nimmer.
Frage 1 geht, aber Frage 2 nicht mehr. warum? Ich sehe den Felher nicht[ Dieser Beitrag wurde am 31.08.2002 um 19:48 Uhr von Holy editiert. ]
[ Dieser Beitrag wurde am 31.08.2002 um 20:27 Uhr von Holy editiert. ]
-
Die Dateien die in der .zip-Datei enthalten sind kopierst du alle in dein MSVC-Verzeichnis in den Ordner "Include". "Alle Ersetzen" drücken und fertig.
Danach frisch kompilieren, und schon musst du nicht mehr zweimal Enter drücken.
MfG SideWinder
-
Hmm danke, auch wenn ich nicht weis was das war
Naja, bis jetzt hab ichs noch nicht getestet, weil ich da ja noch ein größeres Problam habe.
-
Hi Holly wer hat den nicht schon ein Quiz gemacht???
Ich hab auch schon einz gemacht. Der Code ist aber etwas "unordentlich"Nach 2-3 Mal versteht man ihn. Er gibd sogar Punktzahl aus:
//headdatein #include <iostream.h> //Funktion die Wutzeln berechnet float wurzelziehen(float zahl) { double wurzel = 100; for(int i=0;i!=1000;++i) { wurzel = 0.5*(wurzel + (zahl / wurzel)); } return wurzel; }; //Haupprogramm int main() { int punkte =0; //punkte auf null setzen cout <<"Hi was ist 9 * 9 ????"<< endl; int zahl; cin >> zahl; if(zahl == 81){ cout <<"Richtig!!!! hehe"<<endl; punkte = punkte + 1; } else //wenn falsch { cout <<"Falsch heehee!!!"<<endl; cout <<"Richtig ist " << 9*9 << " du dummi!!!"<<endl; } cout<<"was ist die Wurzel von 81???"<<endl; double zahl2; cin >> zahl2; if(zahl2==wurzelziehen(81)) { cout <<"Richtig" <<endl; punkte = punkte + 1; } else { cout <<"Falsch"<<endl; cout <<"Richtig ist" << wurzelziehen(81) <<"!!!"<<endl; } cout<<"was ist die Wurzel von 45???"<<endl; cin >> zahl2; if(zahl2==6.7082) { cout <<"Richtig" <<endl; punkte = punkte + 1; } else { cout <<"Falsch"<<endl; cout<<"Richtig währe " << wurzelziehen(45) <<"!!!"<<endl; } cout <<"Du hast "<< punkte <<" von 3 Punkten!!!"<<endl; cout <<"Nocheinmal 1 Beenden 0"<<endl; int auswahl; cin >> auswahl; if(auswahl==1) { main(); } return 0; } Ich hab es aber nur mit Zahlen gemacht. Kannst ihn ja ausbauen!(Mach ma und dann schreibs)
-
Cool danke, jetzt weis ich, wie ich das so anlegen muss. Ein paar Bugs sind drin
return 0;
Fehlt hinter den falschen Antworten *g*
aber egal, meines ist sowieso viel schlimmer. Jetzt verabschiedet sich sogar schon Visual Studio von mir *heul*Ich habe versucht, den Code etwas zu vereinfachen um Schritt für Schritt aufzubauen. Dabei hab ich das Programm etwas gestuzt, kompiliert und dann hat das Programm mir gesagt "fatal error..." und hat sich verabschiedet.
Bin ich so schlimm?Hier mein Code:
//headdatein #include <iostream> #include <string> using namespace std; //Haupprogramm int main() { int punkte =0; //punkte auf null setzen int antwort1; cin >> antwort1; if(antwort1 == 1){ cout << "ok1"; } else //wenn falsch { int antwort2; cin >> antwort2; if(antwort2==2) cout << "ok2"; { } else { int antwort3; cin >> antwort3; if(antwort3==3) cout << "ok3"; { } else { } int antwort4; cin >> antwort4; if(antwort4==4) cout << "ok4"; { } return 0; }
Ich wollte den Code anfangs so simpel wie möglich machen und dann verreckt mir auch noch der Compiler, oh man, guter Start für einen Newbie
-
NEIN! Es geht. ich hab nochmal alles überprüft und mit deinem verglichen und dann den Rest aus diesem Topic zusammengestellt. JUHUUU
Es geht! Ich habe ein Programm programmiert, mein erstes Programm, juhuuu...
-
Hast du etwa nicht mit einer Hallo Welt Anwendung angefangen???!???
-
p.s: Das Programm oben ist Stuss geht net ohne hilfe.
-
ich hab mir mal dein Prog angeguckt und muss sagen für nen newbie echt nicht schlecht *respekt* (wenn ich an meine ersten progs zurückdenke ...).
Was du allerdings noch z.B. ändern solltest, is dass du nicht für jede Frage/Antwort neue Variablen benutzt, bzw. diverse Programmstrukturen so auslagerst, dass es möglichst einfach Wird Fragen&Antworten hinzuzufügen.könnte so aussehen:
#include <iostream.h> #define nFuA 2 //Anzahl von Fragen und Antworten int main () { int fails=0, done=0; string antw; string FuA [nFuA][2] = { "Was ist die Wurzel aus 9?","3", "Wie heißt die deutsche Hauptstadt?","Berlin" }; for (done; done<nFuA; done++) { cout << FuA[done][0] <<"\n"; cin >> antw; if (FuA[done][1] == antw) { cout << "Die Lösung war RICHTIG ;-)\n"; } else { cout << "Sorry, deine Antwort war FALSCH :-(, richtig ist:\n"; cout << FuA[done][1] << "\n"; fails++; // ist das gleiche wie failed = failed + 1 } } cout << "Du hast "<< (done-fails) <<" von " << done << " Fragen richtig beantwortet!\n"; return 0; }
so, ich hab das gerade zusammengeschuster, ich hoffe du kannst wenigstens einige Sachen verstehen.
Allso ich benutze in diesem Beispiel einen Array um die Lösungen und Antworten zu Speichern.
Der Array ist zweidimensional, in diesem Fall wähle ich mit dem 1. Index (dem Wert in der 1. eckigen Klammer) das Frage/Antwort Paar, mit dem 2. Index ob ich nun Frage oder Antwort will (0 für die Frage und 1 für die Antwort).
Diesen Array initialisiere ich zu begin mit allen Daten, und frage die dann in der Schleife ab.Falls dir am Quelltext was unverständlich erscheint, einfach fragen (wir mussten schließlich alle mal irgendwie anfangen *g*)
mfg
-bg-