//c代码:只实现基本功能
//
//缺点:只支持万元以下的数值(这个是可以改进的),小数只有2位,只能到分
//
//比较好的就是,连续的0只输出一个零
//
//如:10010 输出:1万零1十
#include "stdio.h"
#include "conio.h"
#include "string.h"
int main()
{
int i=1,j=1,k;
char *y={"\0"};
printf("请输入金额:");
scanf("%s",y);
while(strcmp(*(y+i),'.')!=0) //查找小数点
i++;
for(k=0,j=i;j>=0;j--,k++) //分离整数
{if(*(y+k)!='0')
switch(j){
case 1:printf("%c",*(y+k));break;
case 2:printf("%c十",*(y+k));break;
case 3:printf("%c百",*(y+k));break;
case 4:printf("%c千",*(y+k));break;
case 5:printf("%c万",*(y+k));break;
default:break;
}
else if((*(y+j)=='0')&&(*(y+j+1)!='0')&&k<i-1) printf("零"); //连续多个0输出一个零
}
printf("元");
if(i!=strlen(y))
printf(".%c 角%c 分",*(y+i+1),*(y+i+2));//小数点后面的输出,只保持输出2位
getch();
}
09年在公司写的,可惜那个时候公司是用VB做开发的,不稀罕我这小C代码。。。
请尊重原创,转载请注明出处,谢谢!