作者在 2013-08-01 22:06:31 发布以下内容
收据金额汉字大写表示,写法和读法是不一样的,如1001,读法为:壹仟零壹元整,写法为:壹仟零佰零拾壹元整。现以目前实际中的用法,试写,没考虑分角情况。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int len,i;
char source[16],*cn[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
printf("请输入一个不大于16位的整数(阿拉伯数字表示)\n");
gets(source);
len=strlen(source);
printf("大写金额:");
for(i=0; i<len; i++)
{
printf("%s",cn[source[i]-'0']);
if((len-i)%4==0) printf("仟");
else if((len-i)%4==3) printf("佰");
else if((len-i)%4==2) printf("拾");
else {
if((len-i)>12) printf("兆");
else if((len-i)>8 ) printf("亿");
else if((len-i)>4 ) printf("万");
else printf("元");
}
}
printf("整\n");
return 0;
}