输入一个3 位数,计算该数各位上的数字之和,如果在[1,12]之内,则输出与和数相对应的月份的英文名称,否则输出***。用c语言指针来完成...
时间: 2024-03-22 19:41:29 浏览: 16
好的,我可以帮你解决这个问题。这是一个C语言的代码示例:
```c
#include <stdio.h>
void sum_and_month(int num, char* month) {
int sum = 0;
int temp = num;
while (temp != 0) {
sum += temp % 10;
temp /= 10;
}
if (sum >= 1 && sum <= 12) {
char* months[12] = {
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"
};
strcpy(month, months[sum - 1]);
} else {
strcpy(month, "***");
}
}
int main() {
int num;
char month[10];
printf("请输入一个3位数:");
scanf("%d", &num);
sum_and_month(num, month);
printf("%s\n", month);
return 0;
}
```
这个程序中,我们定义了一个 `sum_and_month` 函数,它接受一个整数和一个字符数组的指针作为参数。这个函数会计算出这个整数各位上的数字之和,并根据和数来判断输出的月份。函数中使用了一个指针 `month` 来存储月份的英文名称,因为在C语言中,函数只能返回一个值,但是我们需要返回两个值:和数和月份名称。
在主函数中,我们首先输入一个3位数,然后调用 `sum_and_month` 函数来计算和数和月份名称。最后输出月份名称即可。
请注意,这个程序假设输入的是一个合法的3位数,如果输入的不是一个3位数,程序可能会出现错误。为了保证程序的正确性,你需要在代码中添加一些错误处理的代码。