★★★for循环语句循环次数的问题★★★

key_0423 2007-12-09 01:34:52
#include <iostream.h>
void main()
{
//显示1,2...10
for(int i=1; i<=10; i++)
cout << i << " " ;
cout << endl;

//显示10,9,8...1
for(int j=10; j>=1; j--)
cout << j << " ";
cout << endl;

//显示1,3,5...9
for(int k=1; k<=10; k=k+2)
cout << k << " ";
cout << endl;

//显示ABC...Z
for(char c='A'; c<='Z'; c++)
cout << c << " ";
cout << endl;

//显示0,0.1,0.2...1.0
for(float x=0; x<=1; x=x+0.1) //为什么输出结果里没有1?只有0.1到0.9
cout << x << " ";
cout << endl;

//显示0,0.1,0.2...1.0
for(float x1=0; x1<=1.0+0.1/2; x1=x1+0.1) //为什么这个语句就可以输出0,0.1,0.2...1.0
cout << x1 << " ";
cout << endl;

//计算s=1+2+3...+100
int s=0;
for(int n=1; n<=100; n++)
s=s+n;
cout << "s=" << s << endl;
}
...全文
261 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
有点难度哦
hai040 2008-04-15
  • 打赏
  • 举报
回复
用float/double就不要用==,包括<=/>=
wuyecandi 2008-04-15
  • 打赏
  • 举报
回复
大家 可以看看。[Quote=引用 7 楼 yitianmengyu 的回复:]
2楼的也没看懂,我觉得可能是浮点数精度的问题,这是我在网上搜到的一个同样的问题,供大家参考一下http://www.programfan.com/club/showpost.asp?id=70753&t=o
[/Quote]
雪鹰翔天 2008-04-14
  • 打赏
  • 举报
回复
//显示0,0.1,0.2...1.0 
for(float x=0; x <=1; x=x+0.1) //为什么输出结果里没有1?只有0.1到0.9 把这里的x<=1 换成x<=1.0.
cout < < x < < " ";
cout < < endl;

你把控制条件 x<=1 换成x<=1.0
这是float跟int关系的问题.
1.0要稍微大于1.
虽然大得很少很少,但也是大于它
yitianmengyu 2008-04-14
  • 打赏
  • 举报
回复
2楼的也没看懂,我觉得可能是浮点数精度的问题,这是我在网上搜到的一个同样的问题,供大家参考一下http://www.programfan.com/club/showpost.asp?id=70753&t=o
yitianmengyu 2008-04-14
  • 打赏
  • 举报
回复
2楼的也没看懂,我觉得可能是浮点数精度的问题,这是我在网上搜到的一个同样的问题,供大家参考一下http://www.programfan.com/club/showpost.asp?id=70753&t=o
s32702 2007-12-10
  • 打赏
  • 举报
回复
还是类型的问题。
wenxinsiju 2007-12-10
  • 打赏
  • 举报
回复
floating point的数都是非精确的。
你从0开始每次加0.1,加10次,最后得到的数是稍微大于整数1的,所以输出0.9以后for循环就停了。

hello0world 2007-12-10
  • 打赏
  • 举报
回复
顶下
想不通,晕
buyong 2007-12-10
  • 打赏
  • 举报
回复
楼上说的不对,当x=0.9时x+0.1等于1.0,应该能输出。
把float换成double应该正常.
fang235one_ 2007-12-09
  • 打赏
  • 举报
回复
for(float x=0; x <=1; x=x+0.1) //为什么输出结果里没有1?只有0.1到0.9
cout < < x < < " ";
cout < < endl;
因为x=x+0.1和x++运行方式相差很大就以X=1来说吧
X++代表的意思是先将X赋值1,再自加.也就是说X++的值是1,
而X=X+0.1则是先取1在1+0.1结果是X的值是1.1而不是1.0

//显示0,0.1,0.2...1.0
for(float x1=0; x1 <=1.0+0.1/2; x1=x1+0.1) //为什么这个语句就可以输出0,0.1,0.2...1.0
cout < < x1 < < " ";
cout < < endl;

在这个语句中,X1是从0.1开始的,X1可以是X1=0.9+0.1结果当然可以是1.0

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧