C语言编程实现:定义一个递归函数fun,计算1到n之积(n<=20)。要求如下: (1)主函数的功能是输入n的值,调用fun函数得到1-n之积,最后输出结果; (2)fun()函数定义的位置位于主函数后面; (3)fun()函数必须是递归函数。 (4)若输入的数大于20,则重新输入。
时间: 2023-11-27 20:54:06 浏览: 40
以下是C语言代码实现:
```c
#include <stdio.h>
int fun(int n) {
if (n == 1) {
return 1;
} else {
return n * fun(n-1);
}
}
int main() {
int n, result;
do {
printf("请输入一个小于等于20的正整数:");
scanf("%d", &n);
} while (n > 20);
result = fun(n);
printf("1到%d之间的积为:%d", n, result);
return 0;
}
```
在上述代码中,fun函数使用递归实现了计算1到n之积的功能。在主函数中,使用do-while循环来确保输入的数不大于20,然后调用fun函数计算结果并输出。
相关问题
C语言编程实现:定义一个递归函数fun,计算1到n之积(n<=20)。要求如下: (1)主函数的功能是输入n的值,调用fun函数得到1到n之积,最后输出结果; (2)fun()函数定义的位置位于主函数后面; (3)fun()函数必须是递归函数。 (4)若输入的数大于20,则重新输入。
以下是C语言代码实现:
```c
#include <stdio.h>
int fun(int n) {
if (n == 1) {
return 1;
} else {
return n * fun(n - 1);
}
}
int main() {
int n;
printf("请输入n的值(n<=20):");
scanf("%d", &n);
while (n > 20) {
printf("输入的数大于20,请重新输入:");
scanf("%d", &n);
}
int result = fun(n);
printf("1到%d之积为:%d\n", n, result);
return 0;
}
```
首先,在主函数中输入n的值,并且通过while循环判断输入的数是否大于20,若大于20则重新输入。
然后,调用递归函数fun,计算1到n之积,最后输出结果。
其中,递归函数fun的实现方式是:
- 当n等于1时,返回1;
- 当n大于1时,返回n乘以fun(n-1)的结果。
这里的递归调用就是每次将n减1,直到n等于1为止。
c语言编程实现:定义一个递归函数fun,计算1到n之积(n<=20)。要求如下: (1)主函数的功能是输入n的值,调用fun函数得到1-n之积,最后输出结果; (2)fun()函数定义的位置位于主函数后面; (3)fun()函数必须是递归函数。 (4)若输入的数大于20,则重新输入。
下面是实现代码:
```c
#include <stdio.h>
int fun(int n);
int main() {
int n;
do {
printf("请输入n的值(n<=20):");
scanf("%d", &n);
} while (n > 20);
int result = fun(n);
printf("1到%d之积为:%d\n", n, result);
return 0;
}
int fun(int n) {
if (n == 1) {
return 1;
} else {
return n * fun(n - 1);
}
}
```
首先在主函数中输入n的值,并且通过do-while循环判断输入的n是否小于等于20。如果n大于20,则重新输入。
接着调用递归函数fun()计算1到n之积,最后输出结果。
在递归函数fun()中,如果n等于1,则直接返回1。否则,递归调用fun()函数计算n-1的结果,并将n与结果相乘,得到1到n之积。