Program wczytuje liczbę rzeczywistą - kwotę pieniędzy (część całkowita to złote, ułamkowa - grosze), następnie określa ile trzeba użyć będących w obrocie nominałów pieniężnych (banknotów i monet) aby wypłacić tę kwotę.
Program ktory napisalem, poprawnie oblicza czesc calkowita podanej liczby, problem pojawia sie przy czesci ulamkowej(zaokragla ilosc nominalow w dol).
Np. podana kwota: 0.70, program pokazuje ze trzeba uzyc: 1x0.50zl; 0x0.20zl(blad); 1x0.10zl; 1x0.05zl; 2x0.02zl; 0x0.01zl, co daje nam w sumie 0.69zl(blad).
Dla wpisanej kwoty: 0.20, program dziala poprawnie;
Czy ktos moglby mi wskazac blad lub uswiadomic mnie ze ten program jest caly niepoprawny?
Program:
Kod: Zaznacz cały
#include<stdio.h>
#include<conio.h>
int main()
{
int b,c,d,e,f,g,h,i,j,k,l,m,n,o;
double a,p,q,r,s,t,u,v,w,x,y,z,xx,xy;
printf("Podaj kwote:"); scanf("%lf",&a);
b=a/200;
p=a-b*200;
c=p/100;
q=p-c*100;
d=q/50;
r=q-d*50;
e=r/20;
s=r-e*20;
f=s/10;
t=s-f*10;
g=t/5;
u=t-g*5;
h=u/2;
v=u-h*2;
i=v/1;
w=v-i*1;
j=w/0.5;
x=w-j*0.5;
k=x/0.2;
y=x-k*0.2;
l=y/0.1;
z=y-l*0.1;
m=z/0.05;
xx=z-m*0.05;
n=xx/0.02;
xy=xx-n*0.02;
o=xy/0.01;
printf("Liczba nominalow:
");
printf("200zl: %d
",b);
printf("100zl: %d
",c);
printf("50zl: %d
",d);
printf("20zl: %d
",e);
printf("10zl: %d
",f);
printf("5zl: %d
",g);
printf("2zl: %d
",h);
printf("1zl: %d
",i);
printf("50gr: %d
",j);
printf("20gr: %d
",k);
printf("10gr: %d
",l);
printf("5gr: %d
",m);
printf("2gr: %d
",n);
printf("1gr: %d
",o);
system("pause");
}