用c语言编写一个自定义的递归函数fun(n),该函数的功能是求整数n的阶乘,在主函数main中调用此自定义函数,求解1!+2!+3!+......n!,运行时n由用户从键盘输入,如果输入的不是整数,则屏幕输出“输入非法!请重新输入!”
时间: 2023-09-30 21:01:48 浏览: 97
好的,以下是用 C 语言编写一个自定义的递归函数 `fun(n)`,该函数的功能是求整数 n 的阶乘,并在主函数 `main` 中调用此自定义函数,求解 1!+2!+3!+...+n!。如果输入的不是整数,则屏幕输出“输入非法!请重新输入!”。请参考以下代码:
```c
#include <stdio.h>
// 自定义递归函数,求n的阶乘
int fun(int n) {
if (n == 0) {
return 1;
} else {
return n * fun(n - 1);
}
}
int main() {
int n, sum = 0;
printf("请输入一个整数n:");
if (scanf("%d", &n) != 1) {
printf("输入非法!请重新输入!\n");
return 0;
}
for (int i = 1; i <= n; i++) {
sum += fun(i);
}
printf("1! + 2! + 3! + ... + %d! = %d\n", n, sum);
return 0;
}
```
在上面的代码中,`fun(n)` 是一个递归函数,用于计算整数 `n` 的阶乘。在 `main` 函数中,我们首先从键盘输入一个整数 `n`,然后用 `for` 循环计算 1!+2!+3!+...+n! 的值,并将结果存储在变量 `sum` 中。如果输入的不是整数,则程序会输出“输入非法!请重新输入!”并结束程序的执行。
阅读全文