24小时热门版块排行榜    

查看: 3590  |  回复: 21

fengxingwang

新虫 (初入文坛)

[求助] C++编程,关于循环结构的,大家看看我这程序哪里错了?

#include
void main()
{
        double x,y,t,e,p,f,z;
               x=1;
                   y=2;
                   z=128;
                   for(t=1;t<6;t=t+0.01)
                   {
                          e=x*t;
                          p=y*t;
                                                  f=e*p*t;
                          if(f==z)
                                  break;
                   }
                   printf("%f,%f\n",t,f);
}
运行结果是:6.01  ,432
应该是t=4.   f=128 啊,
编译的时候没显示错误,但是结果却显示的不对,是怎么回事啊??
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助! 2012-03-04 01:44:07
楼主可以把for语句改成这样,我都是这样做的

在stdio.h的下一行,添加:
CODE:
#include

for 语句改成:
CODE:
for( t=1;  fabs(t-6) < 0.005;  t=t+0.01)

在对浮点数作大小比较的时候,都要添加精度范围,在几乎所有编程教科书上都是这样强调的
很女子很弓虽大
9楼2012-02-29 16:37:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★
余泽成(金币+2): 谢谢参与应助! 2012-03-04 01:44:18
CODE:
if(f==z)

改成
CODE:
if(fabs( f-z ) < 0.005)

很女子很弓虽大
10楼2012-02-29 16:38:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

★ ★
余泽成(金币+2): 谢谢参与应助! 2012-03-11 23:24:46
引用回帖:
13楼: Originally posted by lijie169 at 2012-02-29 17:00:42:
1 为什么不给我金币?
2、不用定义成一种类型,可以把if(f==z)改成 if(abs(f-z)<0.00001)类似这样,就可以了!!!

lijie169的回答是对的!~~~ 楼主要给的。哈哈!

代码(这次,我运行过),结果是 4.000000,128.000000
CODE:
#include
#include
void main()
{
                double x,y,t,e,p,f,z;
                x=1;
                y=2;
                z=128;
                for(t=1;t<6;t=t+0.01)
                {
                                e=x*t;
                                p=y*t;
                                f=e*p*t;
                                if(fabs(f-z)<0.005)
                                                break;
                }
                printf("%f,%f\n",t,f);
}

很女子很弓虽大
18楼2012-03-01 18:31:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

ataoyo

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
余泽成(金币+1): 谢谢参与应助! 2012-03-04 01:35:24
应该是t=t+1吧,而不是t=t+0.01
2楼2012-02-29 14:12:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengxingwang

新虫 (初入文坛)

引用回帖:
: Originally posted by ataoyo at 2012-02-29 14:12:36:
应该是t=t+1吧,而不是t=t+0.01

那我要是想每次都给t加上0.01该怎么写啊??
3楼2012-02-29 14:19:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengxingwang

新虫 (初入文坛)

引用回帖:
: Originally posted by ataoyo at 2012-02-29 14:12:36:
应该是t=t+1吧,而不是t=t+0.01

现在要各个变量都定义成整数。。int定义,那结果运行对,可是我要是想得到的结果是小数怎么写啊?
4楼2012-02-29 14:21:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
余泽成(金币+1): 谢谢参与应助! 2012-03-04 01:35:50
fengxingwang(金币+4): ★★★★★最佳答案 2012-03-06 11:57:51
首先浮点数和整数不可能相等的,即使一个是6,另一个是6.0,建议取break条件f-z的绝对值小于某一个值
5楼2012-02-29 14:34:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fengxingwang

新虫 (初入文坛)

引用回帖:
: Originally posted by lijie169 at 2012-02-29 14:34:21:
首先浮点数和整数不可能相等的,即使一个是6,另一个是6.0,建议取break条件f-z的绝对值小于某一个值

恩,你知道怎么把这些变量都定义成同一种形式的吗?我想让各个变量都是小数点后几位的。是不int,该改成double或float之类的啊?
#include
void main()
{
        double x,y,t,e,p,f,z;
               x=1.3562;
                   y=2.4358;
                   z=128.0000;
                   for(t=1.0000;t<6.0000;t=t+0.01)
                   {
                          e=x*t;
                          p=y*t;
              f=e*p*t;
                          if(f==z)
                                  break;
                   }
                   printf("%f,%f\n",t,f);
}
6楼2012-02-29 14:43:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文俊点点

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
余泽成(金币+1): 谢谢参与应助! 2012-03-04 01:43:48
这样f和z永远不可能相等的·······
这个应该是小于一个范围········
这是你所拥有的时间·····这是你所能改变的生活·········
7楼2012-02-29 16:31:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit


余泽成(金币+1): 谢谢参与应助! 2012-03-04 01:43:57
f==z
这个有点问题
一般都是写f-z的绝对值小于某个数量级,比如e-6,这就看你程序的精度了
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
8楼2012-02-29 16:37:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fengxingwang 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +27 医学老男孩 2026-08-13 58/2900 2026-08-15 15:57 by GZUZM
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 15:10 by QXtWNz7PI7wZ
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 k0dTPqJtl0jt 2026-08-14 3/150 2026-08-15 12:33 by KxMI1BYBxWX1
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 7lpolszZVXgi 2026-08-14 8/400 2026-08-15 11:53 by KxMI1BYBxWX1
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 07:09 by 4wMiSEwB6436
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 k0dTPqJtl0jt 2026-08-14 5/250 2026-08-15 04:45 by 4wMiSEwB6436
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +11 Tide man 2026-08-10 12/600 2026-08-15 02:12 by home3163
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 请教兼职经验 +3 是阿文鸭 2026-08-09 3/150 2026-08-14 12:07 by HER12025
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见