题解 | #人民币转换#
人民币转换
https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void trans_printf(int x)
{
switch (x) {
case 1:
{
printf("壹");
break;
}
case 2:
{
printf("贰");
break;
}
case 3:
{
printf("叁");
break;
}
case 4:
{
printf("肆");
break;
}
case 5:
{
printf("伍");
break;
}
case 6:
{
printf("陆");
break;
}
case 7:
{
printf("柒");
break;
}
case 8:
{
printf("捌");
break;
}
case 9:
{
printf("玖");
break;
}
default:
{
//printf("非法字符");
break;
}
}
}
int main()
{
float num;
scanf("%f",&num);
printf("人民币");
int array[15] = {0};
float unit = 0.01;
float value;
int i=0;
int flag_zero =0;
while(num/unit>=1)
{
value = (int)(num/unit)%10;
if(value>0)
{
array[i] = (int)value;
}
unit *=10;
i++;
}
for(i--;i>=0;i--)
{
if(i==11)
{
if(array[i]==1)
{
printf("拾");
}
else
{
trans_printf(array[i]);
printf("拾");
}
}
if(i==10)
{
trans_printf(array[i]);
printf("亿");
}
if(i==9)
{
trans_printf(array[i]);
printf("千");
}
if(i==8)
{
trans_printf(array[i]);
printf("佰");
}
if(i==7)
{
if(array[i]==1)
{
printf("拾");
}
else
{
trans_printf(array[i]);
printf("拾");
}
}
if(i==6)
{
trans_printf(array[i]);
printf("万");
}
if(i==5)
{
trans_printf(array[i]);
printf("千");
}
if(i==4)
{
if(array[i]!=0)
{
trans_printf(array[i]);
printf("佰");
flag_zero =0;
}
else
{
if(flag_zero==0)
{
printf("零");
flag_zero = 1;
}
}
}
if(i==3)
{
if(array[i]!=0)
{
if(array[i]==1)
{
printf("拾");
}
else
{
trans_printf(array[i]);
printf("拾");
}
flag_zero =0;
}
else
{
if(flag_zero==0)
{
printf("零");
flag_zero = 1;
}
}
}
if(i==2)
{
trans_printf(array[i]);
printf("元");
if(array[1]==0&&array[0]==0)
{
printf("整");
return 0;
}
}
if(i==1)
{
if(array[i]!=0)
{
trans_printf(array[i]);
printf("角");
}
}
if(i==0)
{
if(array[i]!=0)
{
trans_printf(array[i]);
printf("分");
}
}
}
return 0;
}
查看8道真题和解析