gingele
Level-1
- Beiträge
- 227
- Reaktionspunkte
- 42
-> Hier kostenlos registrieren
Hallo,
ich versuche gerade in den Ferien meine erlernten C-Kenntnisse zu festigen und Versuche einige Übungsaufgaben. Doch bei dieser Aufgabe stoße ich auf ein Problem wo ich nicht weiter weiß.
Ich soll einen Taschenrecher mit den Grundrechenarten programmieren, ist auch eigentlich nicht schwer, kappt soweit beim ersten Rechendurchgang auch, doch der Rechner soll erst beendet werden wenn als Operator q geschreiben wird, somit läuftder Rechner bei nicht eingabe q, beim ersten Durchgang, wieder von vorne los, doch diesesmal kann ich keinen Operator reinschreiben, da die scanf-Anweisung
übersprungen wird und gleich die Eingabe kommt
Hier mal das Programm:
ich versuche gerade in den Ferien meine erlernten C-Kenntnisse zu festigen und Versuche einige Übungsaufgaben. Doch bei dieser Aufgabe stoße ich auf ein Problem wo ich nicht weiter weiß.
Ich soll einen Taschenrecher mit den Grundrechenarten programmieren, ist auch eigentlich nicht schwer, kappt soweit beim ersten Rechendurchgang auch, doch der Rechner soll erst beendet werden wenn als Operator q geschreiben wird, somit läuftder Rechner bei nicht eingabe q, beim ersten Durchgang, wieder von vorne los, doch diesesmal kann ich keinen Operator reinschreiben, da die scanf-Anweisung
Code:
"Bitte Eingabe Operator"
Code:
"Bitte Eingabe Operand1"
Hier mal das Programm:
Code:
#include <stdio.h>
float calculate(char optr, float opr1, float opr2)
{
float erg;
switch(optr)
{
case('+'):
erg=opr1+opr2;
break;
case('-'):
erg=opr1-opr2;
break;
case('*'):
erg=opr1*opr2;
break;
case('/'):
erg=opr1/opr2;
break;
}
return erg;
}
int main(void)
{
float opr1;
float opr2;
char optr='0';
float erg;
while(optr!='q')
{
printf("\nEingabe: Operator <return> Operand1 <return> Operand2 <return>");
printf("\nBitte Eingabe Operator (+, -, *, /, q): ");
scanf ("%c", &optr);
if(optr!='q')
{
printf("\nBitte Eingabe Operand1: ");
scanf ("%f", &opr1);
printf("\nBitte Eingabe Operand2: ");
scanf ("%f", &opr2);
printf("\nErgebnis: %f %c %f = %f\n",opr1, optr, opr2, calculate(optr,opr1,opr2));
}
else
{
break;
}
}
return 0;
}