运用递归输出月份英文名:输入月份,输出对应的英文名称。要求用指针数组表示 12 个月的英文名称。 例如,输入 5,输出 May。试用C语言编写相应程序。
时间: 2024-02-18 19:05:26 浏览: 68
好的,下面是使用递归实现的代码:
```c
#include <stdio.h>
#include <string.h>
void printMonth(int month, char **months)
{
if (month < 1 || month > 12)
{
printf("无效的输入!");
}
else if (month == 1)
{
printf("%s", *months);
}
else
{
printMonth(month - 1, months + 1);
}
}
int main()
{
char *month[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int input;
printf("请输入月份(1-12):");
scanf("%d", &input);
printMonth(input, month);
return 0;
}
```
在这个程序中,我们定义了一个名为`printMonth`的函数,用来递归输出对应月份的英文名称。这个函数接受两个参数,一个是要输出的月份,另一个是指针数组`months`,其中存储了 12 个月份的英文名称。
如果输入的月份无效,函数会输出提示信息。如果输入的是 1 月,函数会直接输出`months`数组的第一个元素,即`January`。否则,函数会递归调用自身,将月份减一,同时将`months`指针向后移动一位,继续递归输出对应的英文名称。
在`main`函数中,我们通过`scanf`函数获取用户输入的月份,然后调用`printMonth`函数输出对应的英文名称。
阅读全文