05.03.2014, 19:51
Hallo,
Ich hab ein kleines Problem in meinem kleinem Programm. Er soll den Durchschnitt berechnen von einem "Kandidaten" und das bestehn und nichtbestehen ausgeben. Dabei sollten diese Kriterien erfüllt werden: es darf nicht mehr als eine Note 5 dran kommen, der Durchschnitt 1 darf nicht höher als 3,5 liegen und der Durchschnitt 2 nicht höher als 3,0 und es darf keine Sechsen geben.
Nun mein Problem ist das ich auf dem Schlau steh, weil anscheinend eine If Anweisung nicht richtig ist. Der Durchschnitt wird korrekt berechnet, aber es kommt nur immer "der Kandidat hat die Prüfung nicht bestanden", obwohl alle Kriterien erfüllt worden sind
Ich hab ein kleines Problem in meinem kleinem Programm. Er soll den Durchschnitt berechnen von einem "Kandidaten" und das bestehn und nichtbestehen ausgeben. Dabei sollten diese Kriterien erfüllt werden: es darf nicht mehr als eine Note 5 dran kommen, der Durchschnitt 1 darf nicht höher als 3,5 liegen und der Durchschnitt 2 nicht höher als 3,0 und es darf keine Sechsen geben.
Nun mein Problem ist das ich auf dem Schlau steh, weil anscheinend eine If Anweisung nicht richtig ist. Der Durchschnitt wird korrekt berechnet, aber es kommt nur immer "der Kandidat hat die Prüfung nicht bestanden", obwohl alle Kriterien erfüllt worden sind
Code:
#include <iostream>
#include <conio.h>
main()
{
float durchschnitt, d2;
char Kandidat[20], bestanden;
int deutsch, englisch, physik, mathe, anz5;
std::cout<<"\n Programm zur Ermittlung des Bestehens oder Nichtbestehens einer Prüfung\n\n";
std::cout<<"Name des Kandidataten eingeben";std::cin>>Kandidat;
std::cout<<"Note im Fach Deutsch eingeben";std::cin>>deutsch;
std::cout<<"Note im Fach Mathematik eingeben";std::cin>>mathe;
std::cout<<"Note im Fach Physik eingeben";std::cin>>physik;
std::cout<<"Note im Fach Englisch eingeben";std::cin>>englisch;
durchschnitt=(mathe+englisch+deutsch+physik)/4.0;
d2=(mathe+deutsch)/2.0;
if(deutsch==5) anz5=anz5+1;
if(mathe==5) anz5=anz5+1;
if(englisch==5) anz5=anz5+1;
if(physik==5) anz5=anz5+1;
if(deutsch==6 || mathe==6 || englisch==6 || physik==6 || anz5>1 || d2>3.0 || durchschnitt>3.5)
bestanden='n';
else
bestanden='j';
if(bestanden=='j')
std::cout<<Kandidat<<"hat die Prufung bestanden";
else
std::cout<<Kandidat<<"hat die Prufung nicht bestanden";
std::cout<<"Durchschnitt"<<durchschnitt;
std::cout<<"Durchschnitt"<<d2;
getch();
}
Bitte um Hilfe für einen Anfänger. Danke im vorraus!