c语言1加2分之1一直加到10分之1怎么写
答案:3 信息版本:手机版
解决时间 2019-10-03 16:05
已解决
2019-10-02 21:23
c语言1加2分之1一直加到10分之1怎么写
最佳答案
2019-10-02 22:58
double s=0.0;
int i;
for(i=1;i<=10;i++)
s+=1.0/i;
printf("s=%f",s);追问我用的int定义的i,用的float定义的S,用的while语句,不管怎么算结果都是1,不知道为什么,我给你看看我的代码追答好的,你发出来。追问
大神你看看哪里错了追答S=0.0;//浮点数的初始化为0一般是0.0
a=1.0/i;//注意是1.0追问我试一下
还是1.0000000
大神你的程序以及运算结果大神在吗追答float s,a;
int i;
s=0.0;i=1;
while(i<=10){
a=1.0/i;
s=s+a;
i++;
}
printf("s=%f:
",s);我不知道你的是怎样,反正在我这没问题
追问可以了,但是我的为什么不对呢,我的程序哪里错了?大神我知道了,a等于1➗i了,应该是1.0➗i,可是为什么要加个小数点呢,求解释追答a=1/float(i);//要么这样
a=1.0/i;//要么这样
//因为int/int还是一个int型数
s=0;//这样也行,但是为了表明它是一个浮点数,一般初始化为1.0,0.0这样的追问。。。。。啥意思,有点不太明白,就是浮点数一定加小数点吗追答int a=3,b=2;
//那么会有
a/b=3/2=int(1.5)=1//两个整型数相除仍是整型数
float b=2;
a/b=3/2=1.500000追问好的,谢谢大神,整形➗浮点是什么样子呢?追答整型是整数,浮点是带小数点的数(小数)这个你应该分得清吧。。追问对啊,整形能不能➗浮点型
还有为什么这个程序中,a=2 n=3我的运行是245,应该是246啊,哪里错了,好纠结,大神就打扰您一会给我解释一下吧追答int n=3,a=1;
double s=0,N=0;
int n=3,a=1;
while (i<=n-1){
N+=a*pow(10,i);
i++;
s+=N;
}
printf("s=%lf:
",s);整型可以转换为浮点,反之亦然。
比如int a=1;转为浮点-->float b=float(a);[b的值就是1.000000]
-->再转为整型 b=int(b);[b的值就变回1了]
全部回答
1楼
2019-10-03 00:15
1/n,分母n做+1的循环
sigema= sigema+1/n;追问为什么我写出来之后不管怎么算都是1追答数据类型注意下,sum=sum+1.0/n,你在试试
2楼
2019-10-02 23:09
void main()
{
float sum=0.0;
int i,n=1;
for(i=0;i<10;i++)
{
sum+=1/n;
n++;
}
printf("%lf",sum);
}追问
为什么我这样写运行始终是1追答你单步调试看看吧,你可以改成while(if(i<=10))看看行不行。我觉得是while()出的问题,要不你就这样写
while(1)
{
a=1/i;
s=s+a;
i=i+1;
if(i==11)
break;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看