Debugger meldet Call stack in einfacher Rechnung



  • Hallo liebe Experten. es geht um eine easy Rechnung in C. Sobald es gestartet wird , kommt (programm funktioniert nicht mehr)

    hier der Quelltext:
    [code="c"]

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {

    int a, b=0;

    int summe= a+b , differnz= a-b, produkt= a*b, modulo= a%b;
    float quotient= a/b;

    printf("Der kleine Rechner\n -------------------------------------\n\n");
    printf("\n Geben Sie die erste Zahl ein: %d",a);
    scanf("%d", &a);
    printf("\n Geben Sie die zweite Zahl ein: %d",b);
    scanf("%d", &b);
    printf("\n Die eingegebenen Zahlen liefern folgende Ergebnisse:");
    printf("\n\t %d + %d= %d",a,b,summe);
    printf("\n\t %d - %d= %d",a,b,differnz);
    printf("\n\t %d * %d= %d",a,b,produkt);
    printf("\n\t %d / %d= %.2f",a,b,quotient);
    printf("\n\t %d % %d= %d",a,b,modulo);

    system("PAUSE");

    return 0;
    }



  • a ist uninitialisiert, modulo 0 ist undefiniert (in a%b).



  • Hallo ThatMGB,

    der Code wird sequentiell ausgeführt, d.h. du mußt folgende Reihenfolge beachten (EVA-Prinzip):
    Eingabe
    Verarbeitung
    Ausgabe

    Die Verarbeitung (d.h. Berechnung) muß also nach der Eingabe erfolgen.



  • was genau muss ich ändern, ich sehe die Fehler nicht im EVA-Prinzip.

    Vielen Dank



  • Hey, Fehler gefunden, war etwas Blind 🙂



  • aber warum der modulo nicht läuft weiß ich trotzdem nicht 😞



  • Rechnet er nicht oder ist die Ausgabe vom Modulo falsch?
    Wenn du ein % im Formatstring von printf ausgeben willst, musst du es doppelt angeben:

    printf("\n\t %d %% %d= %d",a,b,modulo);
    

    Ansonsten können wir ja nicht wissen, was du verändert hast.
    Zeig deinen aktuellen Code.



  • ich Idiot 🙂 danke


Anmelden zum Antworten