PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kein Compilerfehler, aber Programm stürzt ab!



GSlash
20.07.2004, 04:32
Hi,

wie der Thread-Titel schon sagt, habe ich ein kleines Programm gebastelt, bei dessen Kompilierung der Compiler zwar keinen Fehler ausgespuckt hat, aber das Programm sobald ich die 2. Eingabe bestätigen will abstürzt.

Und zwar kommt die typische Windows Meldung: "Programm hat einen Fehler festgestellt und muss beendet werden"

Ich habe den Code jetzt schon ne halbe ewigkeit analysiert, und die Variablen-Typen geändert da ich vermutete dass sich diese evtl. mit der Eingabe beißen könnten. Hat aber nichts gebracht, der gleiche Fehler.

Könnt ihr mir bitte weiterhelfen?

hier einmal der komplette Code:


#include <iostream.h>

unsigned int Punkte = 0;
unsigned int MaxPunkte = 0;
unsigned int AnzFragen = 0;

void NeueSeite();
void Begruessung();
bool Starten();
int Fragen();
int AuswFragen(char RichtigeAntwort, char Antwort);
void Bewertung();
bool Wiederholen();

void main()
{
Begruessung();
if(Starten())
{
do
{
Fragen();
Bewertung();
}
while(Wiederholen());
}
}

void NeueSeite()
{
cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
}

void Begruessung()
{
cout << "Willkommen bei: QUIZZ\n"
<< "made by GSl4sh\n\n"
<< "In der QUIZZ-Datenbank befinden sich zur Zeit "
<< AnzFragen << " Fragen!\n"
<< "Sind Sie bereit? (j/n)\n";
}

bool Starten()
{
char JaNein = 'j';

cin >> JaNein;

return 'j' == JaNein;
}

int Fragen()
{
char RichtigeAntwort = 'x';
char Antwort = 'y';

// Beginn Fragen
cout << "Frage Nr. 1:\n"
<< "blablabla\n"
<< "a.)\tbla\n"
<< "b.)\tbla\n"
<< "c.)\tbla\n"
<< "d.)\tbla\n\n";
cin >> Antwort;

RichtigeAntwort = 1;
AuswFragen(RichtigeAntwort, Antwort);

NeueSeite();
//============================================================================

// Ende Fragen

// Werte zurücksetzen
RichtigeAntwort = 'x';
Antwort = 'y';
Punkte = 0;
return Punkte;
}

int AuswFragen(char RichtigeAntwort, char Antwort)
{
if(RichtigeAntwort == Antwort)
{
cout << "\n\nRICHTIG!!!";
Punkte++;
return Punkte;
}
else
{
cout << "\n\nFALSCH!!!";
}
cout << "\nSie haben im Moment " << Punkte << " Punkte";
return Punkte;
}

void Bewertung()
{
int Prozent = 0;

// Berechnung der richtigen Antworten in Prozent
Prozent = Punkte / MaxPunkte * 100;

// Bewertung für erreichte Prozent
cout << "Glueckwunsch, Sie haben alle Fragen von QUIZZ beantwortet!\n\n"
<< "Sie haben " << Punkte << " Fragen richtig beantwortet.\n\n";
if(Prozent <= 20)
{
cout << "Das ist erbaermlich, versuchen Sie es nochmal!";
}
else if(Prozent <= 40)
{
cout << "Schwache Leistung, versuchen Sie es erneut!";
}
else if(Prozent <= 60)
{
cout << "Ganz Nett, aber da ist doch noch mehr drin, oder!?";
}
else if(Prozent <= 80)
{
cout << "Nicht schlecht, aber das können sie noch besser, oder!?";
}
else if(Prozent < 100)
{
cout << "Sehr Gut, aber schaffen Sie auch 100 Prozent?";
}
else if(Prozent == 100)
{
cout << "Gratualtion!!!\n"
<< "Sie sind ein wahrer QUIZZ-Champion!!!";
}
Prozent = 0;
}

bool Wiederholen()
{
char JaNein = 'j';

cin >> JaNein;

return 'j' == JaNein;
}


Falls ihr euch über den evtl. etwas chaotischen, bzw. seltsamen Schreibstil wundert:
Bin (wie ihr euch sicher schon gedacht habt) noch Anfänger und ganz am Anfang.

ich hoffe ihr wisst ne lösung für mein Problem
und danke im Vorraus

mfg
GSl4sh

GSlash
20.07.2004, 05:17
hat sich erledigt, habe den Fehler gefunden (mit etwas hilfe)

und zwar habe ich durch 0 dividiert.

Sorry für den spam

mfg
GSl4sh