Sponsor-Board.de
Thema geschlossen  Thema schreiben 

Problem C++

Verfasser Nachricht

Beiträge: 211
Bewertung: 6
Registriert seit: Apr 2012
Status: offline


Beitrag: #1
Problem C++

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

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!

Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2014 19:56 von Rusti-.

05.03.2014 19:51
 
Alle Beiträge dieses Benutzers finden

Beiträge: 52
Bewertung: 10
Registriert seit: Nov 2012
Status: offline


Beitrag: #2
RE: Problem C++

Lass dir mal die Variable anz5 ausgeben, dann sollte es "Klick" machen. Wink

Dein Code lässt zudem nicht gerade leicht lesen.
- Nach Abschluss eines Befehls folgt ein Zeilenumbruch
- nutze geschweifte Klammern um die Blöcke klarer darzustellen
- anz5=anz5+1; ist das gleiche wie anz++ // inkrement
- nehme Gebrauch von Namespaces

Bsp.:
#include <iostream>
using namespace std;

main() {
cout << "text" << endl; //so ersparst du es dir jedes "std::"
}


http://www7.pic-upload.de/31.01.14/5csfl8fw225u.png(!https)

05.03.2014 21:21
 
Alle Beiträge dieses Benutzers finden

Beiträge: 211
Bewertung: 6
Registriert seit: Apr 2012
Status: offline


Beitrag: #3
RE: Problem C++

Danke hat mir geholfen, hab anz5=0; vergessen haha man man wäre ohne dich nicht drauf gekommen dickes DANKE!

05.03.2014 21:32
 
Alle Beiträge dieses Benutzers finden
Thema geschlossen  Thema schreiben 

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2024 by MyBB Group - Deutsche-Übersetzung von Mybb.de
 
© 2007-2024 Sponsor-Board.de - Hosted by OVH

Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos!   Jetzt registrieren