C语言编写自定义函数通过键盘输入一个正整数n,计算 sum = 1 + 1/(1+2) + 1/(1+2+3) +...+1/(1+2+3+..+n),
时间: 2023-11-27 14:05:20 浏览: 32
以下是C语言编写自定义函数通过键盘输入一个正整数n,计算sum = 1 + 1/(1+2) + 1/(1+2+3) +...+1/(1+2+3+..+n)的代码:
```c
#include <stdio.h>
double fun(int n);
int main()
{
int n;
double sum = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
sum += fun(i);
}
printf("sum = %lf", sum);
return 0;
}
double fun(int n)
{
double res = 0;
for (int i = 1; i <= n; i++)
{
res += i;
}
return 1 / res;
}
```
相关问题
C语言编写自定义函数通过键盘输入一个正整数n,计算 sum = 1 + 1/(1+2) + 1/(1+2+3) +...+1/(1+2+3+..+n)使用静态变量
以下是使用静态变量的C语言代码,实现计算 sum = 1 + 1/(1+2) + 1/(1+2+3) +...+1/(1+2+3+..+n):
```c
#include <stdio.h>
float sum(int n) {
static float total = 0; // 静态变量
total += n;
return 1 / total;
}
int main() {
int n;
float s = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
s += sum(i);
}
printf("sum = %f", s);
return 0;
}
```
用c语言采用函数递归调用的方法计算sum=1+2+……+n
以下是用C语言递归调用函数计算1+2+...+n的代码:
```c
#include <stdio.h>
int sum(int n) { // 定义递归函数sum
if (n == 1) { // 递归结束条件
return 1;
} else {
return n + sum(n - 1); // 递归调用
}
}
int main() {
int n, result;
printf("请输入一个正整数n:");
scanf("%d", &n);
result = sum(n);
printf("1+2+...+%d=%d\n", n, result);
return 0;
}
```
代码执行流程:
1. 在主函数中输入一个正整数n;
2. 调用sum函数,将n作为参数传递给sum函数;
3. 在sum函数中,如果n等于1,返回1,否则返回n加上sum(n-1)的结果;
4. sum函数不断递归调用自身,直到n等于1;
5. 最终得到1+2+...+n的结果,返回给主函数;
6. 主函数输出结果。