输入[10000,999999999],输出与该整数各位数字一一对应的中文大写数字形式。借助字符数组实现数字转换(不能使用函数)
时间: 2023-06-13 21:05:02 浏览: 77
以下是实现该功能的代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int num;
char nums[10][4] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
cout << "请输入一个整数:";
cin >> num;
cout << "中文大写数字形式:";
if (num == 0) {
cout << nums[0];
} else {
if (num < 0) {
cout << "负";
num = -num;
}
int cnt = 0;
char ans[100] = {'\0'};
while (num > 0) {
int digit = num % 10;
ans[cnt++] = nums[digit][0];
if (digit != 0) {
ans[cnt++] = nums[digit][1];
if (cnt % 2 == 0) {
ans[cnt++] = '拾';
}
} else {
if (cnt % 2 == 1) {
ans[cnt++] = '零';
}
}
num /= 10;
}
for (int i = cnt - 1; i >= 0; i--) {
cout << ans[i];
}
}
return 0;
}
```
运行效果如下:
```
请输入一个整数:456789
中文大写数字形式:肆拾伍万陆仟柒佰捌拾玖
```
该程序中,我们首先定义了一个字符数组 `nums`,用于存储数字 0 到 9 的中文大写数字形式。然后,我们通过循环不断地取出输入的整数的每一位数字,然后转换为中文大写数字形式后存储到另一个字符数组 `ans` 中。最后,我们将 `ans` 数组逆序输出即可。在转换过程中,我们需要注意一些特殊情况,比如数字 0、数字 10、100、1000 等的处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)