📄 66.c
字号:
#include <stdio.h>
#include <string.h>
char c_je[51]; /*大写金额字符变量*/
char* zh( x ) /*数字金额转换为大写金额子程序*/
double x; /*要转换的金额数*/
{
int i, n, bz;
char je[14]; /*数字金额的字符变量*/
char temp[13];
char f1[10][3] = {"零","壹","贰","叁","肆","伍",
"陆","柒","捌","玖"}; /*数字对应的大写数组变量*/
char f2[11][3] = {"亿","仟","佰","拾","万",
"仟","佰","拾","元","角","分"}; /*每位数字对应单位数组变量*/
sprintf( je, "%.01f", 100*x); /*转换成字符*/
n = strlen( je );
c_je[0] = '\0';
bz = 1;
for( i = 0; i < n; i++ )
{
strcpy( temp, &je[i] ); /*复制到临时数组*/
if( atoi(temp)==0) /*判断第i位后是否全为0*/
{
bz = 2;
break;
}
if( je[i] != '0' )
{
if( bz == 0 )
strcat( c_je, f1[0] );
strcat( c_je, f1[je[i] - '0'] ); /*数字串转化字符串*/
bz = 1;
strcat( c_je, f2[13-n+i]);
}
else
{
if( n-i == 7 && (je[i-1]!='0'||je[i-2]!='0' || je[i-3]!='0')) /*判断万位位置*/
strcat( c_je, "万" );
if( n-i == 3 ) /*判断个位数的元位置*/
strcat( c_je, "元");
bz = 0;
}
}
if( bz == 2 )
{
if( n-i >= 7 && n-i < 10 )
strcat( c_je, "万") ; /*万位数字为0,加‘万’*/
if( n-i >= 3 )
strcat( c_je, "元");
strcat( c_je, "正" ); /*最后不是分位,加“正”*/
}
return c_je; /*返回大写金额*/
}
main()
{
double count;
printf("请输入要转换的金额:");
scanf("%lf", &count );
printf("您输入的金额为:%s\n", zh( count ) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -