c语言求阶乘
时间: 2023-07-02 11:21:44 浏览: 146
下面是一个求阶乘的 C 语言程序:
```c
#include <stdio.h>
int main()
{
int n, i;
unsigned long long factorial = 1;
printf("请输入一个整数: ");
scanf("%d", &n);
// 如果输入的是负数,则无法计算阶乘
if (n < 0)
printf("错误!负数没有阶乘。");
else
{
for (i = 1; i <= n; ++i)
{
factorial *= i; // 计算阶乘
}
printf("%d 的阶乘 = %llu", n, factorial);
}
return 0;
}
```
程序运行后会要求用户输入一个整数,然后计算这个整数的阶乘并输出结果。如果输入的是负数,则会输出一个错误提示。
相关问题
c语言求阶乘用while循环
以下是使用C语言通过while循环求阶乘的示例代码:
```c
#include <stdio.h>
int main() {
int n; // 待计算的数
int i = 1; // 循环计数器
int nfact = 1; // 阶乘结果
printf("请输入一个整数:");
scanf("%d", &n);
while (i <= n) {
nfact = nfact * i;
i++;
}
printf("%d的阶乘为:%d\n", n, nfact);
return 0;
}
```
这段代码首先通过`scanf`函数获取用户输入的整数n作为待计算的数。然后使用while循环,循环条件是i小于等于n,每次循环将nfact乘以i,并将i递增。最后输出n的阶乘结果。
用C语言求阶乘,再将阶乘累加
在C语言中,你可以创建一个函数来求阶乘并将其累加到一个变量中。首先,我们编写一个求阶乘的函数,然后在主程序中初始化一个变量来保存累加的结果。这里有一个示例:
```c
#include <stdio.h>
#include <stdlib.h> // 引入stdlib库,需要long long来存储大数
// 计算阶乘并累加到全局变量sum中
unsigned long long factorial_sum(unsigned int n, unsigned long long* sum) {
if (n == 0) {
return 1; // 0的阶乘是1
} else {
unsigned long long fact = n * factorial_sum(n - 1, sum); // 递归调用
*sum += fact; // 累加到sum
return fact;
}
}
// 初始化sum为0
unsigned long long sum = 0;
int main() {
unsigned int num;
printf("请输入一个非负整数:");
scanf("%u", &num);
if (num > 0) {
factorial_sum(num, &sum); // 调用函数求阶乘累加
printf("从1到%d的所有正整数阶乘之和是:%llu\n", num, sum);
} else {
printf("输入错误,请输入一个非负整数。\n");
}
return 0;
}
```
阅读全文