输入一个三位数,计算该数各位上的数字之和,如果在[1, 12]之内,则输出与数字之和相对应的月份的英文单词,否则输出***。要求:用指针数组记录各月份英文单词的首地址,且不得使用全局变量。目前仅完成了main函数和bizProcess函数,请编程实现hundredsDigit函数、tensDigit函数、unitsDigit函数、searchMonth函数和getNumber函数
时间: 2023-07-16 14:15:53 浏览: 163
好的,我来为您完成这个程序。下面是完整的代码:
```c++
#include <stdio.h>
#include <string.h>
void bizProcess();
int main() {
bizProcess();
return 0;
}
// 计算百位数字
int hundredsDigit(int number) {
return number / 100;
}
// 计算十位数字
int tensDigit(int number) {
return (number % 100) / 10;
}
// 计算个位数字
int unitsDigit(int number) {
return number % 10;
}
// 搜索对应月份的英文单词
char* searchMonth(int sum) {
char* months[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
if (sum >= 1 && sum <= 12) {
return months[sum - 1];
}
return "***";
}
// 获取用户输入的三位数
int getNumber() {
int number;
printf("请输入一个三位数:");
scanf("%d", &number);
return number;
}
void bizProcess() {
int number = getNumber();
int sum = hundredsDigit(number) + tensDigit(number) + unitsDigit(number);
char* month = searchMonth(sum);
printf("该数字对应的月份为:%s\n", month);
}
```
程序中定义了 `hundredsDigit`、`tensDigit`、`unitsDigit`、`searchMonth` 和 `getNumber` 五个函数。
`hundredsDigit` 函数用于计算数字的百位数,其实现方式是将数字除以100。
`tensDigit` 函数用于计算数字的十位数,其实现方式是先将数字对100取模,再除以10。
`unitsDigit` 函数用于计算数字的个位数,其实现方式是将数字对10取模。
`searchMonth` 函数用于根据数字之和搜索对应的月份英文单词。函数内部使用了一个指针数组来存储月份英文单词的首地址,并根据数字之和返回相应的月份英文单词。
`getNumber` 函数用于获取用户输入的三位数。
在 `bizProcess` 函数中,程序先调用 `getNumber` 函数获取用户输入的三位数,然后分别调用 `hundredsDigit`、`tensDigit` 和 `unitsDigit` 函数计算数字的百位、十位和个位数,并将它们相加得到数字之和。最后调用 `searchMonth` 函数搜索对应的月份英文单词,并输出结果。
阅读全文