dividieren mit C ?? ich bin zu blöde dazu..

bazi

bazi

Neues Mitglied
Thread Starter
Dabei seit
16.11.2010
Beiträge
13
Reaktionspunkte
0
Hi
ich ärgere mich gerade mit C rum, möchte wieder nach vielen Jahren in die Programmierung einsteigen, aber hab doch viel verlernt. Naja, für Euch ne Lachnummer, ich hab schon ne Stunde gesucht... nun der Versuch hier im Forum..


#include <stdio.h>
int main()
{
int a,b;
float c;

printf("eingeben zahl 1: \n");
scanf(""%d",&a); // GANZE ZAHL z.B. 200
printf("eingeben zahl 2: \n");
scanf(""%d",&b); // ganze Zahl z.B 130
//rechnen
c = 100 / a * b; // nach der Berechnung ist c immer 0 ??? warum???
printf("Das Ergebnis: %.2f\n",c);
return 0;
}

//irgendwie haut's das bei der Division mit den 100 / a zamm...

Debugger läuft schön durch, aber bei c kommt nix außer ne 0 raus.
 
nehmen wir die zahlen aus deinem beispiel.

100/200*130 = c

Da C ganz normale integer-division macht ist 100/200 =1/2 = 0 (wird halt abgerundet). Und 0*130=0=c :)
 
nehmen wir die zahlen aus deinem beispiel.

100/200*130 = c

Da C ganz normale integer-division macht ist 100/200 =1/2 = 0 (wird halt abgerundet). Und 0*130=0=c :)

und wie wäre es Richtig ?
 
soll das eigentlich 100 / (a * b) oder (100 / a) * b sein?
du solltest das ganze nach float casten, sonst ist es halt int und da wird die nachkommastelle abgeschnitten...
c=(float)100/a*b;
 
soll das eigentlich 100 / (a * b) oder (100 / a) * b sein?
du solltest das ganze nach float casten, sonst ist es halt int und da wird die nachkommastelle abgeschnitten...
c=(float)100/a*b;

jo, das wars, manchmal ist es soooo einfach ... Danke.
 
Zurück
Oben Unten