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 展开
#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 展开
展开全部
1. for里面,改为 ;号,
2. i的是整型,所以1/i得到整数忽略其小数部分;
正确的话可以把i设置为float型,
一般除法也可以用强制转换其中一个int型为float或者double这样就不会忽略小数部分。
这里建议把s=s+1/i;改成s=s+1.0/float(i);
2. i的是整型,所以1/i得到整数忽略其小数部分;
正确的话可以把i设置为float型,
一般除法也可以用强制转换其中一个int型为float或者double这样就不会忽略小数部分。
这里建议把s=s+1/i;改成s=s+1.0/float(i);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!!看后面的注释:
#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 是浮点型数据
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询