C语言计算1-1⼀2+1⼀3-1⼀4+...+1⼀99-1⼀100

2024-11-19 05:52:02
推荐回答(5个)
回答1:

#include

#include

int main()

{

int i;

float sum=0.0,temp=0.0;

for (i = 1; i <= 100; i++)

{

temp = pow(-1, i + 1);

sum = sum + temp * 1 / i;

}

printf("sum is %f\n", sum);

system("pause");

return 0;

}

运行效果:

扩展资料:

在循环体外,可以定义一个辅助变量flag,令flag=1。

循环体中,只需要在结束末尾令flag=-flag,

这样就可以使flag在1和-1之间不断转变,从而完成编程。

代码

#include

int main()

{

int i, flag = 1;

float sum = 0.0;

for (i = 1; i <= 100; i++)

{

sum = sum + flag*(1.0 / i);

flag = -flag;

}

printf("sum is %f\n", sum);

system("pause");

return 0;

}

回答2:

#include
int main(){
double i=0;
double res=1;
for(i=2;i<=100;i++){
int k=i-1;
if(k%2!=0){
res=res-1/i;

}else{
res=res+1/i;
}


}
printf("%lf",res);

return 0;

}

回答3:

根据你的需要,改进了一下代码,如下
#include
void main()
{
int i;
float a=1,sum=0;
for (i=1;i<101;i++)
{
sum=sum+a/i;
a=a*(-1);
}
printf("1-1/2+1/3-1/4....-1/100=%f\n",sum);
}
不懂再交流
望采纳

回答4:

你的输入n是什么意思?
如果是计算
1-1/2+1/3-1/4+...+1/99-1/100
那么不需要输入n,其他不变就是了

如果是计算
1-1/2+1/3-1/4+...+1/n
才需要输入n
代码如下(不需要math.h头文件):
#include void main(){ double sum; int i,n,m; //加个变量i printf("请输入n:"); scanf("%d",&n); for(i=1,m=1,sum=0;i<=n;i++) //n改为i,100改为n { sum+=m*(1.0/i); m=-m; } printf("sum=%lf\n",sum); }

回答5:

发生除0错误 ,,,,
i=2时 a=0 1/0 这一段导致程序崩溃

指出几个问题,第一 1/i 是得不出想要的小数的 你可以试试,1/10 = 0 1/2 = 0 因为都是int型
结果也是int 你要 1.0 / i 这样 double/int 结果是范围大的那个类型,即double
#include
int main()
{
double a=1,sum;
int i;
sum=0;
for(i=1;i<=100;i++)
{
sum+=1.0/i*a;
a*=-1;
}
printf("1+2+3+...+100=%lf\n",sum);
}