C语言程序设计错误

帮忙看看这个程序哪里有错误#include<stdio.h>voidmain(){inti;floats;s=2;for(i=1,i<=50,i++)s=s+1/i;pr... 帮忙看看这个程序哪里有错误
#include<stdio.h>
void main(){
int i;
float s;
s=2;
for(i=1,i<=50,i++)
s=s+1/i;
printf("s=%d",s);
}
程序目的计算是1/1+1/2+1/3+...+1/50
谁能看出哪有问题(编译没有错误,运行时结果不对)
s 的初始值打错了,是0
展开
 我来答
sensi17
2013-10-19 · 超过36用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:22.6万
展开全部
1. for里面,改为 ;号,
2. i的是整型,所以1/i得到整数忽略其小数部分;
正确的话可以把i设置为float型,
一般除法也可以用强制转换其中一个int型为float或者double这样就不会忽略小数部分。
这里建议把s=s+1/i;改成s=s+1.0/float(i);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjj796
2013-10-19 · TA获得超过8702个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3375万
展开全部

你好!!看后面的注释:

#include<stdio.h>
void main(){
    float i;             // i 运算的时候,要取小数,所以改成浮点型
    float s;   
    s=2;
    for(i=1;i<=50;i++)   // 里面的逗号改成分号
    s=s+1/i;
    printf("s=%f",s);    // 里面的%d 改成 %f,因为 s 是浮点型数据
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扯星小王子
2013-10-19 · TA获得超过185个赞
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:59.7万
展开全部
#include<stdio.h>
void main(){
int i;//将i定义为float型
float s;
s=0;
for(i=1,i<=50,i++)//逗号改为分号
s=s+1/i;
printf("s=%d",s);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式