帮我找找我编的这个C程序哪里错了......

来源:百度知道 编辑:UC知道 时间:2024/07/02 12:01:27
1、编写一个程序,计算 S=1-1/2+1/3+.........+1/9999-1/10000
#include<stdio.h>
#include<math.h>
void main()
{
int a;
double sum;
char s;
a=1; s=1; sum=0;
while(a<=10000)
{
sum=sum+s*1/a;
a=a+1;
s=s*(-1);
}
printf("sum=%lf\n",sum);
}

没有错误,但怎么结果老是1呢?

#include<stdio.h>
void main()
{

double sum = 0;
int sign = 1;

for ( int i = 1; i <= 10000; i ++ )
{
sum += 1.0 / i * sign;
sign *= -1;
}

printf( "Sum = %lf\n", sum );

}

或者把你的代码里的
sum=sum+s*1/a;
改成
sum=sum+s*1.0/a;

s*1/a的问题
s和a全是整型,计算顺序是:S*1,结果是整型,
这个结果再除以a,得数还是整型(结果取整),

应该改为
sum=sum+(0.1*s)*1/a;

S 改为整型试试