Kleiner fehler im C programm
-
Das program läuft einwandfrei bis auf ein teil
#include <stdio.h> int division(int zaehler, int nenner,int *anteil,int *rest) { /*falls der nenner 0 ist */ if(nenner == 0) return 1; /*falls nenner und zaehler gleich 0 */ if(nenner == 0 && zaehler == 0) return 2; /*wenn es ohne Rest teilbar */ if(zaehler % nenner == 0) { *anteil = zaehler/nenner; *rest = 0; } else /* falls ein rest bleibt */ { *anteil = zaehler/nenner; /* speichert den rest der division */ *rest = zaehler%nenner; } /* wenn die division erfolgreich war */ return 0; } int main() { int anteil=0,rest=0; int zaehler,nenner; /* Eingabe der Zahlen */ printf("Bitte geben Sie den Zaehler ein:\n"); scanf("%i",&zaehler); printf("Bitte geben Sie den Nenner ein:\n"); scanf("%i",&nenner); /* Berechnung ausfhren, und rckgabewert in t speichern */ int t = division(zaehler,nenner,&anteil,&rest); /* Ausgabe */ if(t==1) { printf("Durch 0 kann man nicht teilen!!!\n"); } else if(t==2) { printf("Zaehler und Nenner duerfen nicht 0 sein\n"); } else if(t==0) { printf("Die Eingabe war erfolgreich!\n"); printf("Sie haben den Zaehler %i und den Nenner %i eingegeben\n", zaehler, nenner); printf("Der Nenner ist %i mal in dem Zaehler enthalten!\n",anteil); printf("Es bleibt ein Rest von %i!\n", rest); } }
Und zwar liegt der fehler hier:
wenn man einen zähler und einen nenner von 0 eingibt kommt dieselbe fehlermeldung wie wenn man nur den Nenner von 0 eingibt, sprich er müsste diese fehlermeldung ausgeben
Zaehler und Nenner duerfen nicht 0 seiner gibt aber diese aus
Durch 0 kann man nicht teilenWeiß vielleicht jemand wo mein fehler liegt?
-
if(nenner == 0) return 1;
Wenn also der Nenner 0 ist wird garnicht erst mehr überprüft, ob nenner und zähler 0 sind, da die Funktion sofort verlassen wird.
-
danke
irgendwie war ich wohl bisschen blind ^^