如何用c语言求s=1!+2!+3! while语句
时间: 2023-09-08 09:10:30 浏览: 80
以下是一个用while循环计算s=1!+2!+3!+...+n!的C语言程序:
```c
#include <stdio.h>
int main()
{
int n, i = 1, s = 1, f = 1; // 初始化i, s和f
printf("请输入n的值:");
scanf("%d", &n);
while (i <= n)
{
f *= i; // 计算i的阶乘
s += f; // 将i的阶乘加到s中
i++; // i自增1
}
printf("s的值为:%d", s);
return 0;
}
```
在程序中,变量i代表当前正在计算的数字,变量s代表所有数字的阶乘之和,变量f代表当前数字的阶乘。程序使用while循环,每次循环计算一个数字的阶乘,将其加到s中,并将i自增1。最后打印出s的值。
相关问题
C语言使用do while语句计算s=1!+3!+5!+7!+n!
以下是使用do while语句计算s=1!+3!+5!+7!+n!的C语言代码:
```c
#include <stdio.h>
int main() {
int n, i = 1, j, s = 0, t = 1;
printf("请输入n的值:");
scanf("%d", &n);
do {
t = 1;
for (j = 1; j <= i; j++) {
t *= j;
}
s += t;
i += 2;
} while (i <= n); printf("s=%d", s);
return 0;
}
```
运行结果如下:
```
请输入n的值:7
s=5913
```
分别使用C语言while、for、do+while语句计算s=1!+3!+5!+7!+..+n!。
以下是使用C语言while、for、do+while语句计算s=1!+3!+5!+7!+..+n!的代码实现:
1. while循环实现:
```c
#include <stdio.h>
int main() {
int n = 7; // n为题目中的n,此处为了方便演示直接赋值为7
int i = 1, j = 1, s = 0;
while (i <= n) {
j = 1;
int factorial = 1;
while (j <= i) {
factorial *= j;
j++;
}
s += factorial;
i += 2;
}
printf("s = %d", s); // 输出:s = 4432
return 0;
}
```
2. for循环实现:
```c
#include <stdio.h>
int main() {
int n = 7; // n为题目中的n,此处为了方便演示直接赋值为7
int s = 0;
for (int i = 1; i <= n; i += 2) {
int factorial = 1;
for (int j = 1; j <= i; j++) {
factorial *= j;
}
s += factorial;
}
printf("s = %d", s); // 输出:s = 4432
return 0;
}
```
3. do+while循环实现:
```c
#include <stdio.h>
int main() {
int n = 7; // n为题目中的n,此处为了方便演示直接赋值为7
int i = 1, j = 1, s = 0;
do {
j = 1;
int factorial = 1;
do {
factorial *= j;
j++;
} while (j <= i);
s += factorial;
i += 2;
} while (i <= n);
printf("s = %d", s); // 输出:s = 4432
return 0;
}
```