grosze/100.0
to nie wyjdzie \(\displaystyle{ 0,78}\) tylko jakieś dziwne przybliżenie tej liczby powiedzmy \(\displaystyle{ 0,7789994}\) i to przeszkadza mi w napisaniu programu. Kod: Zaznacz cały
#include <stdio.h>
#include <math.h>
int main()
{
int zloty;
int grosze;
int banknoty[5] = {200, 100, 50, 20, 10};
float monety[9] = {5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01};
int banknoty_liczba[5] = {0, 0, 0, 0, 0};
int monety_liczba[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
float reszta;
float grosze2;
printf("Podaj liczbe zlotych
");
scanf("%d", &zloty);
printf("Podaj liczbe groszy
");
scanf("%d", &grosze);
for(int i=0; i<5; i++)
{
banknoty_liczba[i] = zloty/banknoty[i];
zloty = zloty - banknoty_liczba[i]*banknoty[i];
if(zloty==0)
break;
}
reszta = zloty + grosze/100.0;
for(int i=0; i<9; i++)
{
monety_liczba[i]=reszta/monety[i];
reszta=reszta-monety_liczba[i]*monety[i];
}
printf("Banknoty:
");
for(int i=0; i<5; i++)
{
if(banknoty_liczba[i]>0)
printf("%d x %d zl
", banknoty_liczba[i], banknoty[i] );
}
printf("Monety:
");
for(int i=0; i<9; i++)
{
if(monety_liczba[i]>0)
{
if(monety[i] >= 1)
printf("%d x %.0f zl
", monety_liczba[i], monety[i]);
else
printf("%d x %.0f gr
", monety_liczba[i], monety[i]*100);
}
}
return 0;
}