编写一个计算程序
编写一个计算程序,对于任意输入一个金额(人民币),给出能组合出这个金额值的最佳可能,要求使用的货币个数最少。例如给出1.46元,将得到1元1个,1角4个,5分1个,1分1个。设定已知人民币的币值有:100元、50元、20元、10元、5元、1元、5角、1角、5分、1分。
程序代码:#include <stdio.h>
#include <math.h>
int main( void )
{
double yuan;
if( scanf("%lf",&yuan) == 1 )
{
unsigned fen = (unsigned)ceil(yuan*100);
if( fen/10000 != 0 )
{
printf( "100元%u个\n", fen/10000 );
fen %= 10000;
}
if( fen/5000 != 0 )
{
printf( "50元%u个\n", fen/5000 );
fen %= 5000;
}
if( fen/2000 != 0 )
{
printf( "20元%u个\n", fen/2000 );
fen %= 2000;
}
if( fen/1000 != 0 )
{
printf( "10元%u个\n", fen/1000 );
fen %= 1000;
}
if( fen/500 != 0 )
{
printf( "5元%u个\n", fen/500 );
fen %= 500;
}
if( fen/100 != 0 )
{
printf( "1元%u个\n", fen/100 );
fen %= 100;
}
if( fen/50 != 0 )
{
printf( "5角%u个\n", fen/50 );
fen %= 50;
}
if( fen/10 != 0 )
{
printf( "1角%u个\n", fen/10 );
fen %= 10;
}
if( fen/5 != 0 )
{
printf( "5分%u个\n", fen/5 );
fen %= 5;
}
if( fen != 0 )
{
printf( "1分%u个\n", fen );
}
}
}