Hilfe datei einbinden
-
Hallo,
erst mal danke für die Aufnahme in eurem Forum XD
und zwar habe ich folgendes Prob.
Ich soll ein Programm schreiben womit man die vier Grundrechenarte berechnen kann
wie 5+7,5-7,5*7,5/7.
Dieses Programm soll beendet werden wenn man 'e' || 'E' eingibt.
Außerdem soll es bei einer falschen Eingabe eine Fehlermeldung ausgeben.
Dass alles ist ja schon geschaft aber es soll außerdem bei der Eingabe von
'h' || 'H' eine Hilfe Datei anzeigen. Doch wenn ich 'h' || 'H' eingebe kommt erst die Fehlermeldung und die Hilfe Datei wird anschließend angezeigt. Kann mir jemand hier Helfen?? Bin im erst ersten Jahr Programmieren! Hier ist mein Quelltext (mit Dev-C++ geschrieben):#include <stdio.h>
#include <stdlib.h>int main()
{
char op,puffer[100];
float z1,z2;
int erg;
printf("Willkommen beim Grundarten-Taschenrechner! Made by Parmit Kapoor
\n\n");
printf("Bitte geben Sie nur Zahlen und keine Buchstaben oder Sonderzeichen
ein, \n\nz.B. 5+7 & nicht 5+ee7 oder 5+??7 \n\n");
printf("Mit den Buchstaben 'e' oder 'E' beenden sie das Programm \n\n");
printf("Mit den Buchstaben 'h' oder 'H' wird ihnen die Hilfe angezeigt \n\n");
printf("Bitte Aufgabe eingeben: \n\n");
do
{
fgets(puffer,100,stdin);
op='.';
erg=sscanf(puffer,"%f %[+/-] %f", &z1, &op, &z2);
if ((erg != 3) && (((puffer[0] != 'e') || (puffer[0] != 'E')) || (puffer[0] !=
'h') || (puffer[0] != 'H')))
printf("Error 425789x0 Ihre Eingabe ist keine gueltige Aufgabe. \n\n");
if ((puffer[0] == 'h')||(puffer[0] == 'H'))
{
printf("HILFESTELLUNG \n\n");
printf("Bitte nur aufgaben aus dem bereich der Grundrechenarten eingeben!
\n\n");
printf("Andere Aufgaben oder gar texte werden nicht akzeptiert! \n\n");
printf("Ebenso werden Aufgaben aus dem Bereich der Wissenschaftlichen Rechnung
\n\n");
printf("nicht akzeptiert! \n\n");
printf("Zusaetzlich koennen sie nur mit 2 Faktoren rechnen! \n\n");
printf("Bitte Aufgabe eingeben: \n\n");
}
else
{
switch(op)
{
case '+':printf("=%f \n\n",z1+z2);break;
case '':printf("=%f \n\n",z1*z2);break;
case '/':printf("=%f \n\n",z1/z2);break;
case '-':printf("=%f \n\n",z1-z2);break;
}
}
} while(!((puffer[0]=='e')||(puffer[0]=='E')));
return (0);
}
-
Falsches Forum!

Aber sieh dir mal die Zeile
if ((erg != 3) && (((puffer[0] != 'e') || (puffer[0] != 'E')) || (puffer[0] !='h') || (puffer[0] != 'H'))) printf("Error 425789x0 Ihre Eingabe ist keine gueltige Aufgabe. \n\n");genauer an. Ich glaub du hast da || und && verwechselt. An welchen Stellen, kannst du dir leicht selbst überlegen, wenn du kurz prüfst, was mit der Abfrage passiert wenn puffer[0] tatsächlich z.B. 'H' oder 'e' usw. ist.
Kleiner Tipp die Abfrage (x!=0 || x!=1) ist für alle x wahr.
Gruß