#include
#include
int main()
{
//定义单位数组
char dw[][3]={"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰"};
//定义数值转义数组
char dx[10][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//变量
int je,a[17]={0},i,j,k;
printf("请输入一个小写整数金额:\n");
//获取输入值
scanf("%d",&je);
i=0;
//循环除10获取je的单位
while(je!=0)
{
//余数,根据循环分别代表个位,十位...
k=je%10;
//余数存储在数组中
a[i]=k;
//除10
je=je/10;
//i表示a数组的实际写入长度
i++;
}
/*分离出小写金额中的各位数字*/
for(j=i-1;j>=0;j--)
{
//打印转义字符
printf("%s",dx[a[j]]);
//打印单位
printf("%s",dw[j]);
}
printf("\n");
}
大概是:先定义两个字符数组,用于输出使用。
while(je!=0)
{k=je%10;
a[i]=k;
je=je/10;
i++;
}这是求金额的每一位数,先对10求余,得到个位数字,然后赋值给数组a[],然后对10整除,得到前几位数,循环让前几位数在对10求余,得到个位数,相当于原来的十位数字,循环.....。
for(j=i-1;j>=0;j--)
{printf("%s",dx[a[j]]);
printf("%s",dw[j]);
}这是依次将得到数字输出,a[j]是分离出的第一位数,输出大小恰好与位置对应,如9对应“玖”,然后紧接着单位输出。