用静态变量写一个函数计算1+1/1+2+1/1+2+3
时间: 2023-11-27 17:04:28 浏览: 83
以下是用静态变量写一个函数计算1+1/1+2+1/1+2+3的示例代码:
```c
#include <stdio.h>
double sum()
{
static int n = 1;
static double s = 0;
s += 1.0 / (n * (n + 1));
n++;
return s;
}
int main()
{
int i;
double s = 1;
for (i = 2; i <= 6; i++) {
s += sum();
}
printf("%f\n", s);
return 0;
}
```
相关问题
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;
}
```
编写自定义函数sum,利用静态变量求s的值,在主函数输出结果。(n=3)。s=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+4+…+n)
以下是您需要的代码实现:
```c
#include <stdio.h>
double sum(int n) {
static double s = 0; // 静态变量,只初始化一次
double numerator = 1, denominator = 1; // 分子和分母
for (int i = 1; i <= n; i++) {
numerator = -numerator; // 分子取相反数
denominator += 2; // 分母递增2
s += numerator / denominator; // 更新s的值
}
return s;
}
int main() {
int n = 3;
double result = sum(n);
printf("s = %lf\n", result);
return 0;
}
```
输出结果为:
```
s = 0.866667
```
阅读全文