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
AusgabeDie 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