S的值怎么老是1.000000,这是为什么??

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:37:53
main()
{
float t,s;
int n,i,h;
s=0;
scanf("%d",&n);
printf("1-1/2+1/3-1/4+...");
for(i=1;i<=n;i++)
{
if(i%2==1)
{ s+=1/i;
h=1;}
else
{s-=1/i;
h=0;}
}
if(h==1)
printf("+1/%d=",n);
else
printf("-1/%d=",n);
printf("%9.6f",s);
}

把程序中的 1/i 改成 1.0/i

if(i%2==1)
{ s+=1.0/i;
h=1;}
else
{s-=1.0/i;
h=0;}
}

改成s+=1.0/i;s-=1.0/i;
就可以了

#include<stdio.h>
void main()
{
double s;
int n,i,h;
s=0;
scanf("%d",&n);
printf("1-1/2+1/3-1/4+...");
for(i=1;i<=n;i++)
{
if(i%2 == 1)
{
s=s + 1/(i*1.0);
h=1;
}
else
{
s = s - 1/(i*1.0);
h=0;
}
}
if(h==1)
printf("+1/%d=",n);
else
printf("-1/%d=",n);
printf("%f",s);
}