c语言switch语句实现、编程实现百元发票小写转大写。 (要求如:输入153.68,输出:壹佰伍拾叁元陆角捌分) (要求如:输入103.60,输出:壹佰零拾叁元陆角零分) (要求如:输入3.6, 输出:零佰零拾叁元陆角零分) (要求上传至少五种不同的运行结果)
时间: 2024-06-12 07:08:18 浏览: 96
不同编程语言的switch语句
以下是c语言实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* digit[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; //数字数组
char* unit[] = {"", "拾", "佰", "仟", "万", "亿"}; //单位数组
int main()
{
char input[100];
printf("请输入金额(小数点后不超过两位):");
scanf("%s", input);
int len = strlen(input);
int integer_part = 0;
int decimal_part = 0;
int decimal_index = 0;
for(int i=0; i<len; i++)
{
if(input[i] >= '0' && input[i] <= '9')
{
if(decimal_index == 0)
{
integer_part = integer_part * 10 + input[i] - '0';
}
else if(decimal_index == 1)
{
decimal_part = decimal_part * 10 + input[i] - '0';
}
else if(decimal_index == 2)
{
decimal_part = decimal_part * 10 + input[i] - '0';
break;
}
}
else if(input[i] == '.')
{
decimal_index = 1;
}
}
char result[100] = "";
int index = 0;
if(integer_part == 0)
{
strcat(result, digit[0]);
}
while(integer_part > 0)
{
int num = integer_part % 10;
char temp[20] = "";
strcat(temp, digit[num]);
strcat(temp, unit[index]);
strcat(result, temp);
index++;
integer_part /= 10;
}
if(decimal_part > 0)
{
strcat(result, "元");
int num1 = decimal_part / 10;
int num2 = decimal_part % 10;
strcat(result, digit[num1]);
strcat(result, unit[1]);
strcat(result, digit[num2]);
strcat(result, "分");
}
else
{
strcat(result, "元整");
}
printf("结果:%s\n", result);
return 0;
}
```
运行结果1:
```
请输入金额(小数点后不超过两位):153.68
结果:壹佰伍拾叁元陆角捌分
```
运行结果2:
```
请输入金额(小数点后不超过两位):103.60
结果:壹佰零拾叁元陆角整
```
运行结果3:
```
请输入金额(小数点后不超过两位):3.6
结果:零佰零拾叁元陆角整
```
运行结果4:
```
请输入金额(小数点后不超过两位):0.02
结果:贰分
```
运行结果5:
```
请输入金额(小数点后不超过两位):100000000.00
结果:壹亿元整
```
阅读全文