B
ByeBye 177919
Hey!
Ich habe grad ein kleines Problem im folgendem Code:
Und zwar bei der Zeile 29-34. Also:
Und zwar funktioniert das, wenn ich z.B 39424 eingebe, dann fragt er nach einer korrekten Angabe. Gebe ich jedoch ein Buchstaben oder andere Zeichen ein, läuft das auf eine Endlosschleife hinaus.
Lehrer kann mir leider nicht helfen xD
Weißt einer wieso?
Habe schon alles mögliche versucht: Variable als char deklarieren und dann die Abfrage in der If in ' klammern zu setzen. Die While schleife zwangsweiße zu pausieren mit system("pause") etc pp.
Probiert es einfach mal aus, komme einfach nicht weiter
Ich habe grad ein kleines Problem im folgendem Code:
Code:
#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
#include <string>
using namespace std;
int main ( ) {
char z='y';
while ( z == 'y' ) {
cout << "Aufgabenblatt 1-5 Anwendungsentwicklung" << endl << endl;
cout << "Willkommen! Das ist eine kleine Sammlung an Aufgaben, die ich in AWE bearbeitet habe, einfach eine Funktion auswaehlen, und die passende Zahl eingeben" << endl;
cout << endl << endl << "1) Hallo Welt" << endl << "2) Hallo Welt mit Nameneingabe" << endl << "3) Zwei Widerstaende in einer Reihenschaltung addieren" << endl << "4) Zwei Widerstaende in einer Parallelschaltung addieren" << endl << "5) Kreisberechnung" << endl << "6) Kugelberechnung" << endl;
cout << endl << "Programm waehlen: ";
double a;
cin >> a;
cout << endl;
while ( a != 1 && a != 2 && a != 3 && a != 4 && a != 5 && a != 6 ) {
cout << "UNGUELTIGE EINGABE, BITTE NEU EINGEBEN: ";
cin >> a;
}
if ( a == 1 ) {
cout << endl << "Hallo Welt!";
cin.get();
} else if ( a == 2 ) {
string name;
cout << "Name: ";
cin >> name;
cout << endl << "Hallo " << name << "!" << endl;
cin.get();
} else if ( a == 3 ) {
double cheese, burger;
cout << "Erste Zahl: ";
cin >> cheese;
cout << "Zweite Zahl: ";
cin >> burger;
double fin = cheese+burger;
cout << "Ergebniss: ";
cout << fin;
cin.get( );
} else if ( a == 4 ) {
double cheese, burger;
cout << "Erste Zahl: ";
cin >> cheese;
cout << "Zweite Zahl: ";
cin >> burger;
double fin = (cheese*burger)/(cheese+burger);
cout << "Ergebniss: ";
cout << fin;
cin.get( );
} else if ( a == 5 ) {
double r;
cout << "Programm zur Kreisberechnung. Flaecheninhalt, Umfang, Durchmesser" << endl << endl << endl;
cout << "Radius eingeben: ";
cin >> r;
cout << endl << "Flaecheninhalt: " << M_PI*r*r;
cout << endl << "Umfang: " << 2*M_PI*r;
cout << endl << "Durchmesser: "<< 2*r;
cin.get( );
} else if ( a == 6 ) {
double r;
cout << "Programm zur Kugelberechnung. Oberflaeche, Volumen" << endl << endl << endl;
cout << "Radius eingeben: ";
cin >> r;
cout << endl << "Oberflaeche: " << 4*M_PI*r*r;
cout << endl << "Volumen: " << 4*M_PI*r*r*r/3;
cin.get( );
}
cin.get( );
system("cls");
cout << endl << "Weiter machen? (Y/n)";
cin >> z;
system("cls");
}
}
Und zwar bei der Zeile 29-34. Also:
Code:
while ( a != 1 && a != 2 && a != 3 && a != 4 && a != 5 && a != 6 ) {
cout << "UNGUELTIGE EINGABE, BITTE NEU EINGEBEN: ";
cin >> a;
}
Und zwar funktioniert das, wenn ich z.B 39424 eingebe, dann fragt er nach einer korrekten Angabe. Gebe ich jedoch ein Buchstaben oder andere Zeichen ein, läuft das auf eine Endlosschleife hinaus.
Lehrer kann mir leider nicht helfen xD
Weißt einer wieso?
Habe schon alles mögliche versucht: Variable als char deklarieren und dann die Abfrage in der If in ' klammern zu setzen. Die While schleife zwangsweiße zu pausieren mit system("pause") etc pp.
Probiert es einfach mal aus, komme einfach nicht weiter
