商山四皓图东汉:高手,问个TC2.0的问题,加分哦

来源:百度文库 编辑:高考问答 时间:2024/05/04 16:48:43
以下是我的程序:
题目是求1-1/2+1/3-1/4+…+1/99-1/100。
下面是我写的:

#include<stdio.h> /*这行可以不要*/
void main(){
int deno,sign;
float sum,term;
sign=1;deno=2;term=1;
while (deno<=1000)
sign=(-1)*sign;
term=sign*(1/deno);
sum=sum+term;
deno=deno+1;
printf("sum=%f",sum);
}

我在TC2.0上调试完全正确,但是我RUN的时候出现的结果是黑屏,没有应该有的结果,这是怎么回事?好像最近运行了几个程序都这样。

谢谢!!!
打错了,term=1应该改为sum=1

刚才按照1楼的改了下,能看出结果,但是结果为1.00000,请问我的程序哪出问题了啊谢谢!

你的 SUM 没有初值
在声明变量的时候初始化sum
float sum=0;

另外 把printf 语句写到 while 循环的外边
我像你是要输出 最后的结果,不是循环一次就输出一次吧

#include<stdio.h> /*这行可以不要*/
void main(){
float deno,sign;
float sum,term;
sign=1;deno=2;term=1;
while (deno<=1000)
sign=(-1)*sign;
term=sign/deno;
sum=sum+term;
deno=deno+1;
}
printf("sum=%f",sum);

while (deno<=1000)
sign=(-1)*sign;
你循环体只执行着一句语句,所以sum=sum+term只被加了一次,应该使用复合语句。
改成
while (deno<=1000) {
sign=(-1)*sign;
term=sign*(1/deno);
sum=sum+term;
deno=deno+1;
}

while 那里应该加大括号吧?下面是复合语句喔

等会再看.没有时间看