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 ausfhren, und rckgabewert 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 sein

    er gibt aber diese aus
    Durch 0 kann man nicht teilen

    Weiß 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 ^^


Anmelden zum Antworten