用C语言求 1-1/2+1/3+....+1/99-1/100的结果,下面是我写的程序在sum=sum+term的地方出错 请指教

#include<stdio.h>floatmain(){intsign=1,deno=2;floatterm,sum=1;for(deno=2;deno<=100;de... #include <stdio.h>
float main(){
int sign=1,deno=2;
float term,sum=1;

for(deno=2;deno<=100;deno++)
{

sign=sign*(-1);
term=sign*(1/deno)
sum=sum+term;

}
printf("result: %d",sign);
}
#include <stdio.h>
int main(){
int sign=1,deno=2;
float term,sum=1.0;

for(deno=2;deno<=100;deno++)
{

sign=sign*(-1);
term=sign*(1/deno);
sum=sum+term;

}
printf("result: %d",sum);
system("pause");
}
这是新的代码 为啥结果是0啊
展开
 我来答
匿名用户
2011-10-14
展开全部
#include <stdio.h>
float main(){
int sign=1,deno=2;
float term,sum=1;

for(deno=2;deno<=100;deno++)
{

sign=sign*(-1);
term=sign*(1.0/deno);
sum=sum+term;

}
printf("result: %f",sum);
}
现在正确,我调试过了
追问
#include  
float main(){
int sign=1,deno=2;
float term,sum=1.0;

for(deno=2;deno<=100;deno++)
{

sign=sign*(-1);
term=sign*(1/deno);
sum=sum+term;

}
printf("result: %f",sum);
system("pause");
}
能解释下为啥我这个的结果是1.0000000吗 谢谢
追答
term=sign*(1/deno);
这里错了了1/deno=0;
yuwei0577
2011-10-14
知道答主
回答量:36
采纳率:0%
帮助的人:18.3万
展开全部
term=sign*(1/deno) 后面缺了一个 分号 ;
注意要用英文半角。
这些问题久了就自然而然不会出现了。刚开始经常这样 0 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬丝竹青衣丨丶
2011-10-14
知道答主
回答量:8
采纳率:0%
帮助的人:12万
展开全部
需要强制转换
term=sign*(1/deno)
这句话中先执行1/deno,两个都是int,所以是整数除法(除出来肯定等于0)。
而且你要输出的是sum,不是sign吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式