|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请各位帮我看看为什么我的循环不能输出值?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
674
人关注过本帖
标题:
请各位帮我看看为什么我的循环不能输出值?
只看楼主
加入收藏
hellenism
等 级:
新手上路
帖 子:86
专家分:0
注 册:2009-2-27
结帖率:
76.47%
楼主
收藏
已结贴
√
问题点数:10 回复次数:5
请各位帮我看看为什么我的循环不能输出值?
#include<stdio.h>
void main(void)
{
float x=-10,y=-10;
for(x=-10.0;x<=10.0;x=x+0.01)
for(y=-10.0;y<=10.0;y=y+0.01)
if(x+y==0) printf("x=%f,y=%f\n",x,y);
}
怎么程序没有输出啊? 我想应该是for的表达式3有问题 但是不知道是为什么 请各位解答..
搜索更多相关主题的帖子:
输出
2009-10-30 22:44
举报帖子
使用道具
赠送鲜花
kandylau
等 级:
新手上路
帖 子:4
专家分:0
注 册:2009-6-2
第
2
楼
收藏
得分:0
for(y=-10.0;y<=10.0;y=y+0.01)
if(x+y==0) printf("x=%f,y=%f\n",x,y);
这段程序需要用大括号括起来
2009-10-30 23:10
举报帖子
使用道具
赠送鲜花
apwh7550
等 级:
论坛游侠
帖 子:41
专家分:106
注 册:2009-10-17
第
3
楼
收藏
得分:10
涉及到计算机浮点数的表示问题。
在计算机里,浮点型数据的相等比较不能用==,你可以选择这种方式:
#include<stdio.h>
#define THRESHOLD 0.001
//说明:这里用宏定义了一个阈值,
//小于这个阈值便认为两个数相等,你可以根据自己的需要调整
void main(void)
{
float x=-10,y=-10;
for(x=-10.0;x<=10.0;x=x+0.01)
for(y=-10.0;y<=10.0;y=y+0.01)
//if(x+y==0) printf("x=%f,y=%f\n",x,y);
if(x+y-0<THRESHOLD&&x+y-0>-THRESHOLD) printf("x=%f,y=%f\n",x,y);
//判断条件也可以写为abs(x+y-0)<THRESHOLD,但需要包含数学函数的头文件
}
根据程序输出的值你便可以明白为什么不能用==来比较了
[
本帖最后由 apwh7550 于 2009-10-30 23:18 编辑
]
2009-10-30 23:14
举报帖子
使用道具
赠送鲜花
apwh7550
等 级:
论坛游侠
帖 子:41
专家分:106
注 册:2009-10-17
第
4
楼
收藏
得分:0
回复 2楼 kandylau
我觉得只有一条语句是可以不用大括号括起来的。
2009-10-30 23:15
举报帖子
使用道具
赠送鲜花
hellenism
等 级:
新手上路
帖 子:86
专家分:0
注 册:2009-2-27
第
5
楼
收藏
得分:0
#include<stdio.h>
void main(void)
{
float x=-10,y=-10;
for(x=-10.0;x<=10.0;x=x+0.01){
for(y=-10.0;y<=10.0;y=y+0.01){
if(x+y==0) printf("x=%f,y=%f\n",x,y);
}
}
}
一样没输出...
直接就 Press any key to continue
2009-10-30 23:18
举报帖子
使用道具
赠送鲜花
m456m654
等 级:
小飞侠
威 望:
3
帖 子:783
专家分:2806
注 册:2009-9-17
第
6
楼
收藏
得分:0
对于浮点型没有绝对的相等==,只能在多大程度上接近。这里想表示x+y=0,应该改为if(fabs(x+y-0)<1e-5)或者-6,表示小数点后六位相同就认为等式成立。
2009-10-30 23:22
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
请各位帮我看看为什么我的循环不能输出值?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019724 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved