Autor | Nachricht |
---|---|
Beobachter Anmeldedatum: 20.09.2021 Beiträge: 2 | zitieren Hallo zusammen, bin am Anfang meiner Programmier Skills und komme nicht darauf wieso meine Addition nicht klappt? Bei der Ausführung gibt er nur immer : "Der Monatsertrag ist: 0.00000 ![]() Hier mein Code: #include <stdio.h> #include <stdlib.h> #include <math.h> #include<conio.h> double pauschale; int max, i, l, summe, erg; char eingabe, n, c = 'N'; int main() { i=0; do{ printf("Bitte die Pauschale (Entgelt pro Liter Milch) eingeben: \n"); scanf("%lf", &pauschale); printf("Bitte die maximale Liefermenge pro Milchkuh eingeben: \n"); scanf("%f", &max); do{ printf("bitte Liefermenge der Milchkuh eingeben: \n"); scanf("%f", &l); } while (l>max); if (l>max){ l=max; } else{ l=l; } erg = i+l; printf("Der Monatsertrag ist: %lf\n", erg); printf("\n"); printf("weitere Eingabe? j (ja), n (Nein)\n"); c=getch(); } while (c=='j'); return 0; } |
▲ | pn |
Junior Name: Voller Name als Anagramm: Fitje Weshoms Geschlecht: ![]() Fahrzeug: Yamaha YZF R6 Thundercat Anmeldedatum: 15.07.2012 Beiträge: 92 Wohnort: Amberg, Oberpfalz | zitieren Hallo Ryan D! Sieh dir mal die Formatangaben an und welchen Typ die Variablen haben.
|
▲ | pn |
Beobachter Anmeldedatum: 20.09.2021 Beiträge: 2 | zitieren Dankeschön ![]() Hab es gesehen double pauschale, max, l, summe, erg; char eingabe, n, c = 'N'; int main() { do{ printf("Bitte die Pauschale (Entgelt pro Liter Milch) eingeben: \n"); scanf("%d", &pauschale); printf("Bitte die maximale Liefermenge pro Milchkuh eingeben: \n"); scanf("%d", &max); do{ printf("bitte Liefermenge der Milchkuh eingeben: \n"); scanf("%d", &l); } while (l>max); if (l>max){ l=max; } else{ l=l; } printf("Pauschale ist %d \n",pauschale); printf("Liefermenge ist %d\n",l); summe=l*pauschale; printf("Der Monatsertrag ist: %d \n", summe); printf("\n"); printf("weitere Eingabe? j (ja), n (Nein)\n"); c=getch(); } while (c=='j'); return 0; } Hab ihn soweit geändert aber das Ergebnis deklaiert er auf 0,00??? Wie kann das sein? Die zeile vor der Formel gibt er die eingeben Zahlen aus |
▲ | pn |
Junior Name: Voller Name als Anagramm: Fitje Weshoms Geschlecht: ![]() Fahrzeug: Yamaha YZF R6 Thundercat Anmeldedatum: 15.07.2012 Beiträge: 92 Wohnort: Amberg, Oberpfalz | zitieren Hallo Ryan D! So weit ich die Source analysieren kann, wird
nur einmal ausgeführt, es sei denn die variable 'l' ist größer als 'max' Ist 'l' kleiner oder gleich groß, so wird dieser Block nur einmal ausgeführt. Der Block
ist also überflüssig, da ja sowieso 'l' nur kleiner gleich 'max' sein kann. Da 'i' 0 ist so kann 'erg' nur gleich l sein. Ich habe das Programm etwas modifiziert:
So sieht bei mir die Ausgabe aus: ![]() ![]() michkuh.jpg - [Bild vergrößern] |
▲ | pn |
Beobachter Anmeldedatum: 20.09.2021 Beiträge: 2 | zitieren Danke für die neue Sichtweise ![]() Hat mir sehr geholfen |
▲ | pn |
Gast | zitieren Mach mit!Wenn Dir die Beiträge zum Thread "Opperator Addidtion" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:Registrierte Mitglieder genießen die folgenden Vorteile: ✔ kostenlose Mitgliedschaft ✔ keine Werbung ✔ direkter Austausch mit Gleichgesinnten ✔ neue Fragen stellen oder Diskussionen starten ✔ schnelle Hilfe bei Problemen ✔ Bilder und Videos hochladen ✔ und vieles mehr... |
▲ | |