根据用户输入的正整数n,求1-1/2+1/3-1/4+一直加到+(-1)^(n+1)/n的值
马上写给你
#include<stdio.h>
int main()
{
int n,i = 0;
double sum = 0;
int flag = 1;
printf("请输入n的值:\n");\
scanf("%d",&n);
for (i = 1; i <= n; i++)
{
sum = sum + flag * (1.0 / i);
flag = -flag;
}
printf("结果为:%lf ", sum);
return 0;
}
上学的时候学的找规律呀,从1/1 …… 1/n,分子全是1,分母从1到n,那循环就是for(i = 1; i <= n; i++); 循环体是做累计运算,其中1-3-5-7也就是奇数的时候用正数累加,2-4-6-8这种偶数的时候用负数累加,可以用i % 2 == 0 来进行奇数偶数区分,这样算出来的结果就ok了,代码如下:
#include <stdio.h>
int main()
{
int n, i;
float sum = 0;
printf("input n value:\n");\
scanf("%d",&n);
for (i = 1; i <= n; i++)
{
if((i % 2) == 1)
{
sum +=(1.0 / i);
}
else
{
sum -=(1.0 / i);
}
}
printf("ret:%f", sum);
return 0;
}
#include"stdio.h"
int main()
{
int i , n , flag = 1;
float s = 0;
printf("put in n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s += 1.0 / i * flag;
flag *= - 1;
}
printf("%f\n", s);
return 0;
}
运行示例:
代码:
#include <stdio.h>
int main()
{
int n, i;
double sum = 0;
int flag = 1;
scanf("%d", &n); //读取n
for (i = 1; i <= n; i++)
{
sum += flag * 1.0 / i;
flag = -flag;
}
printf("%lf", sum);
return 0;
}
兄弟,你这题目求1-1/2+1/3-1/4+一直加到+(-1)^(n+1)/n 是错的啊,怎么后面是(n+1)/n呢?应该是(-1)^1/n啊
#include <stdio.h>
int main()
{
int n, flag = 1;
double sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
sum += flag * 1.0 /( i+1);
flag = -flag;
}
printf("%lf", sum);
return 0;
}