c语言里面,我for语句的循环跨度如果想是0.5应该怎么打呢,平时就是1++那么1+=0.5为啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言里面,我for语句的循环跨度如果想是0.5应该怎么打呢,平时就是1++那么1+=0.5为啥相关的知识,希望对你有一定的参考价值。
for语句应当使用比较精确的整型来控制循环,如果用浮点数,因为有些浮点数无法精确表示,因此在写循环条件时就需要注意比如:
int i; for ( i=0;i<20;i++ ) ... //由于i是整型,因此可以判断肯定执行20次循环
float i,s; for ( i=s=0;i<10;i+=0.5 ) s+=i; //由于浮点数,加20次后不一定会等于10,也许是9.99999,因此有可能执行21次循环
遇到这样问题,最好还是坚持利用整型变量控制循环次数,而用其他变量来计算具体浮点数,或者给循环结束条件附加一个比较小的浮点数
比如:int i; float a,s; for ( i=s=0;i<20;i++ ) a=(i+1)*0.5; s+=a;
比如:float i,s; for ( i=s=0;i+0.0001<10;i+=0.5 ) s+=i; 参考技术A 你是不是想说
int i;
for(i=0;i<10;i+=0.5) 无限循环是么
因为你i是整型 i=0 i=i+0.5 i还是0,所以。。。。。。。追问
噢噢噢。。。那解决办法是什么呢
追答直接把int i 改成 float i 就可以了啊
参考技术B 我没见过1++,还有1+=0.5,会报错,错误说你的左值不能是常量 参考技术C float i=0.0f;i+=0.5;追问
太好了我懂了谢啦
本回答被提问者采纳求大神,c语言怎么用for循环语句输出1到100的所有质数,我这么做结果出来的是2到100的所有数
求大神,c语言怎么用for循环语句输出1到100的所有质数,我这么做结果出来的是2到100的所有数,哪里做错了吗
参考技术A for(a=2;a<=100;a++)for(i=2,t=0;i<a;i++)
if(a%i==0)
t=1;
break;
if(t==0)
cout<<a<<" ";
追问
那里不是t++吗
追答t++的意义何在,已经确认该数不是质数了,为什么还要循环
追问老师说那相当于一个计数器,之前也是这么算的
那我之前那个哪里错了吗心好累
追答我知道是计数,记录的是数a的除了1和a以外的因子,可是这个的意义何在?程序只要判断到存在非1和a的因子就可以确认数a不是质数,为什么还要继续运算,纯粹是在浪费资源
仔细看区别,if(t==0)后无分号,而且t也没有初始化
😭😭😭我听不懂……算了,我太笨了
本回答被提问者采纳 参考技术B 吧i的初始值改为1以上是关于c语言里面,我for语句的循环跨度如果想是0.5应该怎么打呢,平时就是1++那么1+=0.5为啥的主要内容,如果未能解决你的问题,请参考以下文章
c语言中for语句里面有个k--+是啥意思?(完整是for(k=-1;k<0;k--+))