用c语言递归方法数组形式 整数转换英文表示
时间: 2023-12-28 11:06:21 浏览: 43
以下是一个用C语言递归方式将整数转换为英文表示的示例代码:
```c
#include <stdio.h>
char *ones[] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
char *tens[] = {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
char *teens[] = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
char *convert(int num) {
static char result[100];
if (num < 0 || num > 999) {
return "Out of range";
}
if (num == 0) {
return "zero";
}
if (num < 10) {
sprintf(result, "%s", ones[num]);
} else if (num < 20) {
sprintf(result, "%s", teens[num - 10]);
} else if (num < 100) {
sprintf(result, "%s%s", tens[num / 10], ones[num % 10]);
} else {
sprintf(result, "%s hundred %s", ones[num / 100], convert(num % 100));
}
return result;
}
int main() {
int num;
printf("Enter a number between 0 and 999: ");
scanf("%d", &num);
printf("%d in English is %s\n", num, convert(num));
return 0;
}
```
该程序首先定义了三个字符串数组,分别存储英文数字的个位、十位和特殊情况(例如11-19)的表示。然后定义了一个递归函数convert,该函数将整数转换为英文表示。如果整数超出范围,函数返回"Out of range";如果整数为0,函数返回"zero";如果整数小于10,函数返回个位数字的英文表示;如果整数小于20,函数返回特殊情况的英文表示;如果整数小于100,函数返回十位和个位数字的英文表示;如果整数大于等于100,函数返回百位数字的英文表示并递归调用convert函数处理剩余部分。最后在main函数中调用convert函数并输出结果。
示例输出:
```
Enter a number between 0 and 999: 123
123 in English is one hundred twenty three
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)