|
发表于 2014-4-29 22:59:31
|
显示全部楼层
#include<stdio.h>
void RMB_numbers()
{
int i=0,j=0,pieces[10],result[10];
float value,flag[10],mianzhi[10]={100,50,10,5,2,1,0.5,0.1,0.05,0.01};
printf("Please input the value:\t");
scanf("%f",&value);
for(i=0; i<10; i++)
{
pieces[i]=(int)(value/mianzhi[i]);
value=value-pieces[i]*mianzhi[i];
}
for(i=0;i<10;i++)
{
if(pieces[i])
{
result[j]=pieces[i];
flag[j]=mianzhi[i];
j++;
}
}
for(i=0;i<j;i++)
{
printf("面值为\t%4.2f¥的:\t%d张\n",flag[i],result[i]);
}
//printf("%4.4f", 0.01);
}
int main()
{
printf("\tThis is the RMB_numbers program\n");
RMB_numbers();
}
调试了以下,基本结果正常,但是当数字绝对值大的时候,小数第二位就不是很准确了。
|
|