| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2796 人关注过本帖
标题:for循环出现问题
只看楼主 加入收藏
ah123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-10-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:11 
for循环出现问题
#include "stdio.h"
void main()
{
   int i,p;
   for (i=1;i<=2;i++)
   p=1/(i+1);
   printf("s=%d\n",p);
}
为什么yunxing结果是0
收到的鲜花
  • 书生牛犊2016-10-06 14:53 送鲜花  20朵   附言:看你没分了。。。
搜索更多相关主题的帖子: include 
2016-10-05 15:52
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:3 
小数部分被截断了,运行结果当然是零。想求小数把p定义为浮点型,并且在运算时把1改为1.0
收到的鲜花
  • ah1232016-10-06 11:48 送鲜花  3朵  
2016-10-05 16:00
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:3 
#include "stdio.h"
void main()
{
   int i,p;
   for (i=1;i<=2;i++)
   p=1/(i+1);    //p=1/(1+1)=1/2=0;  p=1/(2+1)=1/3=0;
   printf("s=%d\n",p);
}

int/int 整除。没有小数部分
收到的鲜花
  • ah1232016-10-06 11:49 送鲜花  3朵  

φ(゜▽゜*)♪
2016-10-05 16:13
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:3 
回复 楼主 ah123
你写出来的代码中,有一个你不注意的地方p=1/(...).它可以有小数也可以没有小数。
你看到的结果,是机器给的结果,而不是你要的结果。因为要适应机器。所以才出现所谓的你的错。
收到的鲜花
  • ah1232016-10-06 11:50 送鲜花  3朵  

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2016-10-05 19:03
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 4楼 do8do8do8
p是int类型。。根本不会保留小数。
收到的鲜花
  • ah1232016-10-06 11:46 送鲜花  3朵  

φ(゜▽゜*)♪
2016-10-05 19:12
chenchen224
Rank: 4
等 级:业余侠客
威 望:1
帖 子:61
专家分:237
注 册:2016-8-11
收藏
得分:3 
运行了你的程序,看到确实是你说的都是0的结果,把p改成float也是0;应该是上面的
人说的是机器的结果,不一样。
收到的鲜花
  • ah1232016-10-06 11:50 送鲜花  3朵  

我想做的,只是静静的把C学好,从此代码是爱人......
2016-10-05 20:49
ah123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-10-5
收藏
得分:0 
回复 2楼 ehszt
感谢
2016-10-06 11:47
ah123
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-10-5
收藏
得分:0 
回复 2楼 ehszt
感谢
2016-10-06 11:48
pabalawolf
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2016-7-5
收藏
得分:0 
2楼的大侠说得对,1必须改为1.0,否侧取整后再赋值还是0.000
2016-10-09 11:23
feiyue323
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:18
注 册:2016-9-16
收藏
得分:3 
取1.0 结果还是0
不如把int 换成float
2016-10-09 15:26
快速回复:for循环出现问题
数据加载中...
 
   



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

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