Hallo,
wenn ich das Programm starte, dann werde ich aufgefordert Enter zu drücken und das klappt wunderbar. Aber wenn ich das Programm am Ende neu starte, dann wird cin.get() übersprungen, woran liegt das? VIelleicht am zuvor gedrückten Enter nachdem ich "j" eingebe oder hat das eine andere Ursache?
wenn ich das Programm starte, dann werde ich aufgefordert Enter zu drücken und das klappt wunderbar. Aber wenn ich das Programm am Ende neu starte, dann wird cin.get() übersprungen, woran liegt das? VIelleicht am zuvor gedrückten Enter nachdem ich "j" eingebe oder hat das eine andere Ursache?
C++:
#include <stdio.h>
#include <iostream>
using namespace std;
int main(void) {
double zahl1 = 0;
double zahl2 = 0;
double zahl3= 0;
char neu = 'j';
while (neu == 'j')
{
printf("Anleitung: \nSie werden aufgefordert drei Zahlen einzugeben."
"\nDie ersten beiden Zahlen sind ein geschlossener Intervall,"
"\nwährend die letzte Zahl, die zu überprüfende Zahl ist,"
"\nob sie im Intervall liegt, oder nicht."
"\n\nDrücken Sie Enter, um fortzufahren.");
cin.get();
printf("\nGeben sie die untere Grenze des Intervalls ein: ");
scanf("%lf", &zahl1);
printf("Geben sie die obere Grenze des Intervalls ein: ");
scanf("%lf", &zahl2);
printf("\nGeben sie die Prüfzahl ein: ");
scanf("%lf", &zahl3);
if(zahl1 < zahl2){
if(zahl1 <= zahl3 && zahl2 >= zahl3){
printf("Die Zahl %lf liegt im Intervall [%lf, %lf]", zahl3, zahl1, zahl2);
} else if(zahl1 > zahl3 || zahl2 < zahl3){
printf("Die Zahl %lf liegt nicht im Intervall [%lf, %lf]", zahl3, zahl1, zahl2);
}
} else {
if(zahl2 <= zahl3 && zahl1 >= zahl3){
printf("Die Zahl %lf liegt im Intervall [%lf, %lf]", zahl3, zahl2, zahl1);
} else if(zahl2 > zahl3 || zahl1 < zahl3){
printf("Die Zahl %lf liegt nicht im Intervall [%lf, %lf]", zahl3, zahl2, zahl1);
}
} do{
cout << "\n\n------------------------------------------------------\n\n";
cout << "Möchten Sie das Programm neustarten? [j/n]: ";
cin >> neu;
} while (neu != 'j' &&neu != 'n');
}
return 0;
}