题解 | #人民币转换#
人民币转换
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; }