» Opperator Addidtion

Standardbibliothek stdio.hNeuen Thread eröffnenNeue Antwort erstellenIPV6 Server Client Verbindung
AutorNachricht
Beobachter 
Anmeldedatum: 20.09.2021
Beiträge: 2
21.09.2021, 08:36
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
:dumb:

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
23.09.2021, 10:01
zitieren

Hallo Ryan D!

Sieh dir mal die Formatangaben an und welchen Typ die Variablen haben.

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

double pauschale, l, erg, max, i;
int summe;
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("%lf", &max);


 do{
    printf("bitte Liefermenge der Milchkuh eingeben: \n");
    scanf("%lf", &l);
   } while (l>max);

 if (l>max)
  {
   l= max;
  }

erg = i+l;
printf("Der Monatsertrag ist: %lf\n", erg);
printf("\nweitere Eingabe? j (ja), n (Nein)\n");
c=getch();

}while (c== 'j');


return 0;
}



pn
Beobachter 
Anmeldedatum: 20.09.2021
Beiträge: 2
25.09.2021, 05:05
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
28.09.2021, 16:49
zitieren

Hallo Ryan D!

So weit ich die Source analysieren kann,
wird

printf("bitte Liefermenge der Milchkuh eingeben: \n");
scanf("%d", &l);

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

if (l>max){
l=max;
}
else{
l=l;

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:

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

double pauschale, l, erg, max, i, liefermengemonat = 0;
int summe, kuehe = 1, j;
char eingabe, n, c = 'N';

int main()
{
 i=0;
 do
 {
  printf("Bitte Anzahl der Milchkühe eingeben: ");
  scanf("%d", &kuehe);
 
 
  printf("Bitte die Pauschale in Euro(Entgelt pro Liter Milch Beispiel: 0.337) eingeben: \n");
  scanf("%lf", &pauschale);
 
  printf("Bitte die maximale Liefermenge pro Milchkuh pro Monat(Beispiel: 700) eingeben: \n");
  scanf("%lf", &max);


 for (j = 0; j < kuehe; j ++)
  {
    do
    {
     printf("Bitte Liefermenge der Milchkuh Nr.%d eingeben: \n", j);
     scanf("%lf", &l);
     if (l > max)
      printf("Fehlerhafte Eingabe: Leistung der Milchkuh über Maximum!");
      else
       {
        liefermengemonat += l;     
       }
    }while (l>max);
  }
  erg = pauschale * liefermengemonat;

printf("Der Monatsertrag in Liter aller Milchkuehe ist: %lf\n", liefermengemonat);
printf("Der Monatsertrag in Euro ist..................: %lf\n", erg);
printf("\nweitere Eingabe? j (ja), n (Nein)\n");
c=getch();

}while (c== 'j');


return 0;
}

So sieht bei mir die Ausgabe aus:


 
michkuh.jpg
michkuh.jpg - [Bild vergrößern]


pn
Beobachter 
Anmeldedatum: 20.09.2021
Beiträge: 2
29.09.2021, 16:32
zitieren

Danke für die neue Sichtweise :)

Hat mir sehr geholfen


pn
Gast 
29.09.2021, 16:32
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...


Neue Antwort erstellen
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |