https://www.informatik.uni-augsburg.de/lehr...gen/blatt06.pdf
Verwendet: GCC unter Linux, mit -ansi kompiliert (wir sollen uns an ANSI C 90 halten)
Es geht um Aufgabe 3, ich hab zunächst einmal den Uni Source Code komplett weg, der machte Probleme sobald ich dann selber meinen Code hinzufügte, der eigens ging und komplett andere Variablennamen hatte.
Nun hab ich das Problem wenn ich bei Teilaufgabe 6 z berechnen lasse, dass bei manchen Werten z sowieso nicht stimmt aber dann im nachhinein ich für alpha, alpha1 etc. nix mehr eingeben kann, sondern er einfach irgendwelche zahlen zuweist.
Zitat
Geben sie x ein:
1234.5678
z ist 114143765
7.Teilaufgabe
Geben sie alpha ein:
Geben sie alpha1 ein:
Geben sie alpha2 ein:
Geben sie beta ein:
alpha ist 134519284, alpha1 ist 0, alpha2 ist 134513488, beta ist 0
nue ist 0
1234.5678
z ist 114143765
7.Teilaufgabe
Geben sie alpha ein:
Geben sie alpha1 ein:
Geben sie alpha2 ein:
Geben sie beta ein:
alpha ist 134519284, alpha1 ist 0, alpha2 ist 134513488, beta ist 0
nue ist 0
Die Frage ist wieso? Wieso wirkt sich der dortige Fehler auf den letzten Teil überhaupt aus, wenn keine Variable dort erneut auftaucht.
Der gesamte Code (noch nicht wirklich schön ik):
#include#include int main() { /* Vereinbarungen */ double v1, v2; /* doppelt genaue Fliesskommavariablen */ int m1, m2, over, ax, ay, a; /* ganzzahlige Variablen */ printf("1.Teilaufgabe\n"); m1 = (3*4)/5; /* Ergibt 2, da 12/5 = 2,4 und bei Integer nur die 2 genommen wird */ printf("m1 ist %d\n", m1); printf("2.Teilaufgabe\n"); m2 = (3/5)*4; /* Ergibt 0, da für den PC hier 3/5 als 0 gerechnet wird, richtig wäre erneut 2,4 */ printf("m2 ist %d\n", m2); printf("3.Teilaufgabe\n"); int b,c; printf("Geben sie Werte für ax und ay in der Form (ax,ay) ein:\n"); scanf("(%d,%d)", &b, &c); /* solang man sich im Zahlenbereich befindet wird ein richtiges Ergebniss (ganze Zahlen) geliefert, ab 3 Milliarden nicht mehr, da der Zahlenbereich überschritten wird (Zahl aus Angabenhinweis) */ printf("Ihre Eingabe war %d für ax und %d für ay\n", b, c); over = b + c; printf("Die Summe ergibt %d\n", over); printf("4.Teilaufgabe\n"); v1 = 7/8 + 14/9; printf("v1 ist %d\n", v1); printf("5.Teilaufgabe\n"); v2 = 7/8. + 14/9; printf("v2 ist %d\n", v2); printf("6.Teilaufgabe\n"); double z; double x; const double pi = 3.1415927; printf("Geben sie x ein:\n"); scanf("%d", &x); z = (pi*x + 0.01)/(20000+0.5); printf("z ist %d\n", z); printf("7.Teilaufgabe\n"); int alpha, alpha1, alpha2, beta; long nue; printf("Geben sie alpha ein:\n"); scanf("%d", &alpha); printf("Geben sie alpha1 ein:\n"); scanf("%d", &alpha1); printf("Geben sie alpha2 ein:\n"); scanf("%d", &alpha2); printf("Geben sie beta ein:\n"); scanf("%d", &beta); printf("alpha ist %d, alpha1 ist %d, alpha2 ist %d, beta ist %d\n", alpha, alpha1, alpha2, beta); nue = (alpha1*alpha2)/((alpha*alpha)+(beta*beta)); printf("nue ist %d\n", nue); return 0; }
Dieser Beitrag wurde von mo bearbeitet: 25. November 2006 - 19:58