| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1390 人关注过本帖
标题:这段代码1和1.0到底有什么区别,求大佬解答!
只看楼主 加入收藏
hzc904217071
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-3-7
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
这段代码1和1.0到底有什么区别,求大佬解答!
#include<stdio.h>
float fun(int m)
{
    float sum=0;
    int i=1,count=0;
    //请在该注释语句下方编写代码
    for( ;i<=m;i++)
    {
        if(i%3==0 && i%7==0)
        {
            sum=1.0/i+sum;
            count++;
        }
    }
    printf("%d\n",count);
    return sum;
}
int main()
{
    float sum=fun(100);
    printf("%f\n",sum);
    sum=fun(200);
    printf("%f\n",sum);
    sum=fun(300);
    printf("%f\n",sum);
    return 0;
}



在这段代码中
为什么
sum=1.0/i+sum;
是对的

sum=1/i+sum;
是错的
搜索更多相关主题的帖子: int 代码 fun sum printf 
2021-03-07 17:33
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:4 
这是因为计算机没有人聪明。计算机认为1.0不等于1。计算机看到小说点,他认为是实数,没看到小数点,他认为是整数。
这个很麻烦,计算机计算整数的时候,他准备了四个字节存储空间,计算实数的时候,他要准备8个字节(举例)存储空间,也就是说炒菜锅都不一样大小。
炒菜的规矩就更不一样了。
2021-03-07 18:05
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1507
专家分:9241
注 册:2010-3-16
收藏
得分:4 
1 int,1/i运算结果类型是int,小数部分直接舍去
1.0 float,1.0/i运算结果类型是float,保留小数部分。
2021-03-07 18:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:4 
整数运算的结果仍然是整数,比如 7/2 的结果是 商3余1
浮点数运算的结果仍然是浮点数,比如 7.0/2.0 的结果是 3.5
整数与浮点数运算,先将整数提升为浮点数再运算
2021-03-08 11:03
快速回复:这段代码1和1.0到底有什么区别,求大佬解答!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.440670 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved