利用for循环求阶乘c语言代码
时间: 2023-10-16 09:08:24 浏览: 136
```
#include <stdio.h>
int main() {
int n, i, fact = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
fact *= i;
}
printf("%d的阶乘是%d\n", n, fact);
return 0;
}
```
说明:
- 首先定义了三个变量,分别是输入的正整数n,循环计数器i,以及阶乘的结果fact。
- 然后通过scanf函数获取用户输入的正整数n。
- 接着使用for循环从1到n遍历,每次将i乘到fact上,最终得到n的阶乘。
- 最后使用printf函数输出计算结果。
相关问题
C语言for循环语句
在C语言中,for循环语句是一种用于重复执行特定代码块的控制结构。for循环有三个表达式组成,分别是初始化表达式、循环条件表达式和循环迭代表达式。其中,初始化表达式在循环开始前执行一次,循环条件表达式在每次迭代前进行判断,如果条件为真,则执行循环体中的代码,然后执行循环迭代表达式,并再次进行循环条件的判断。重复这个过程直到循环条件为假为止。
在范例提供的代码中,第一个for循环用于计算1!+2!+3!+...+n!的和。循环体内嵌套了第二个for循环,用于计算每个数的阶乘。在第二个for循环中,控制每个阶乘的计算次数,并利用变量y来保存每个数的阶乘结果。然后将每个阶乘结果累加到变量sum中,最后将y重新初始化为1,为下一个循环做准备。
c语言利用阶乘计算cosx
c语言中没有直接用于计算cosx的函数,但是可以利用泰勒展开式和阶乘来计算cosx的近似值。具体步骤如下:
1. 引入头文件math.h
```c
#include <math.h>
```
2. 定义函数cosx,输入参数为double类型的x和n
```c
double cosx(double x, int n)
```
3. 定义变量cos、temp和factorial,用于存储cosx的值、每一项的值和阶乘
```c
double cos = 1, temp = 1, factorial = 1;
```
4. 利用for循环计算cosx的近似值,循环n次
```c
for (int i = 1; i <= n; i++) {
factorial = factorial * (2 * i - 1) * (2 * i); // 计算阶乘
temp = temp * (-1) * x * x / factorial; // 计算每一项的值
cos = cos + temp; // 累加每一项的值
}
```
5. 返回cos的值
```c
return cos;
```
完整代码如下:
```c
#include <stdio.h>
#include <math.h>
double cosx(double x, int n) {
double cos = 1, temp = 1, factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = factorial * (2 * i - 1) * (2 * i); // 计算阶乘
temp = temp * (-1) * x * x / factorial; // 计算每一项的值
cos = cos + temp; // 累加每一项的值
}
return cos;
}
int main() {
double x = 1.0;
int n = 10;
printf("cos(%lf) = %lf\n", x, cos(x)); // 使用math.h中的cos函数验证结果
printf("cos(%lf) ≈ %lf\n", x, cosx(x, n));
return 0;
}
```
输出结果为:
```
cos(1.000000) = 0.540302
cos(1.000000) ≈ 0.540302
```