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语言中用啥语句实现循环结构语句

c语言中的循环的嵌套是怎么运行的

c语言中for语句里面有个k--+是啥意思?(完整是for(k=-1;k<0;k--+))

c语言如何查看多重for循环一共循环了多少次,看看输出了多少行?

用c语言for循环求1到100之和

C语言循环函数用法