编写c程序,用for循环求n的阶乘。要求正整数n由键盘输入,运行程序时输入的n取20。
时间: 2024-06-03 12:09:52 浏览: 58
好的,下面是回答:
您好!这是一个计算n的阶乘的 C 语言程序:
#include <stdio.h>
int main() {
int n, i;
long long factorial = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
if (n < 0) {
printf("抱歉,阶乘不适用于负数\n");
} else {
for (i = 1; i <= n; ++i) {
factorial *= i;
}
printf("%d 的阶乘为 %lld\n", n, factorial);
}
return 0;
}
如果您输入20,它将计算20的阶乘并输出结果。请注意,超过20的输入将产生错误的结果或引起溢出。希望这能回答您的问题!
说个笑话吧:有一天,一只小鸟问另一只小鸟:“你为什么飞不高?”另一只小鸟回答:“我没有飞行员执照!”
相关问题
编一程序求n的阶乘(n由键盘输入)用C语言编写
### 回答1:
下面是用C语言编写一个求n阶乘(n由键盘输入)的程序:
```
#include <stdio.h>
int main() {
int n, i;
unsigned long long factorial = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
if (n < 0) {
printf("输入的数不合法!\n");
return 1;
}
for (i = 1; i <= n; ++i) {
factorial *= i;
}
printf("%d 的阶乘是 %llu\n", n, factorial);
return 0;
}
```
这个程序首先会提示用户输入一个正整数n,然后使用scanf函数将用户输入的值存储到变量n中。接下来,程序会判断用户输入的数是否小于0,如果是,就输出错误信息并返回1。否则,程序使用for循环计算n的阶乘。由于n的阶乘可能很大,因此使用unsigned long long类型的变量来保存结果。最后,程序输出n的阶乘。
### 回答2:
C语言代码如下:
```c
#include <stdio.h>
int main() {
int n;
long long factorial = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
// 阶乘计算
for (int i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d的阶乘为:%lld\n", n, factorial);
return 0;
}
```
运行程序后,程序会提示输入一个正整数,输入后计算该数的阶乘,并输出结果。以上程序中使用了`long long`类型来存储阶乘结果,以应对较大的阶乘数。
### 回答3:
以下是一个用C语言编写的程序,用于计算输入的整数n的阶乘:
```c
#include <stdio.h>
int main()
{
int n, i;
long long factorial = 1;
printf("请输入一个整数:");
scanf("%d", &n);
// 计算阶乘
for (i = 1; i <= n; i++)
{
factorial *= i;
}
printf("%d的阶乘是%lld\n", n, factorial);
return 0;
}
```
运行程序后,会提示用户输入一个整数,然后在计算出n的阶乘后,将结果打印输出。程序使用了一个循环来累乘从1到n的所有数字,最终得到n的阶乘。程序中,使用了`long long`数据类型来存储阶乘的结果,以确保足够大的数能够被正确计算。
帮我用C语言写一个程序:编写一个自定义的递归函数fun(n),该函数的功能是求整数n的阶乘,在主函数main中调用此自定义函数,求解1!+2!+3!+......n!,运行时n由用户从键盘输入,如果输入的不是整数,则屏幕输出“输入非法!请重新输入!”
好的,下面是使用C语言编写的程序,可以实现您的需求:
```
#include <stdio.h>
int fun(int n)
{
if (n == 0 || n == 1)
return 1;
else
return n * fun(n - 1);
}
int main()
{
int n, sum = 0;
printf("请输入一个正整数n:");
if (scanf("%d", &n) != 1 || n < 0) {
printf("输入非法!请重新输入!\n");
return 0;
}
for (int i = 1; i <= n; i++) {
sum += fun(i);
}
printf("1!+2!+3!+...+n! = %d\n", sum);
return 0;
}
```
以上程序中,我们定义了一个自定义的递归函数`fun(n)`,实现求整数n的阶乘。在主函数`main`中,我们首先通过`scanf`函数从键盘读入用户输入的正整数n。如果输入的不是整数或者小于0,程序会输出“输入非法!请重新输入!”并退出。如果输入的是一个正整数,我们就可以通过循环调用自定义函数`fun(i)`,并将每次调用的结果相加,最终求出1!+2!+3!+...+n!的值,并输出结果。
希望能够帮到您!
阅读全文