关于一道编程题
求1-1/2+1/3-1/4+。。。。+1/99-1/100我下面编的没有语法错误,但程序运行的结果不对。求指点。谢谢#include <stdio.h>
void main ()
{
float sum=0,s=1.0,t;
int n;
for(n=1;n<=100;n++)
{
sum=sum+t;n=n+1;s=-s;t=s/n;
}
printf("%f",sum);
}
亲,你t没赋初值。。 t可以不用赋初值你循环里代码的位置要换换就可以了。
那循环里要写成t=s/n;sum=sum+t;s=-s;n=n+1;
希望可以帮到你,第一次回帖,可能有些错误。 #include<stdio.h>
int main()
{
double t,sum;
int i;
t = 2.0;
sum = 1.0;
for(i = 2;i <= 100;i++)
{
if(i%2==0)//每次换一下
{
sum -= 1.0/t;
}
else
{
sum += 1.0/t;
}
t = t + 1.0;//这样的话避免了不同数据类型警告
}
printf("sum = %lf\n",sum);
return 0;
} 九0后浪漫Bu弃 发表于 2014-3-8 17:32 static/image/common/back.gif
亲,你t没赋初值。。
恩,谢谢。你的提醒,t没有赋初值,但sum也没有赋值,我弄好了
void foo()
{
float sum=0 , s=1.0 , t = 1.0;
int n , flag = -1;
for( n=1 ; n <= 100 ; n++ )
{
t = 1.0 / n;
flag *= -1;
t *= flag;
sum = sum + t;
}
printf("%f",sum);
} #include <stdio.h>
void main ()
{
float sum=0,s=1.0,t=1;
int n;
for(n=1;n<=100;n++)
{
sum=sum+t;
n=n+1;
s=-s;
t=s/n;
}
printf("1-1/2+1/3-...+1/97-1/98+1/99-1/100=%f\n",sum);
}
t赋值为1就好了
页:
[1]