24小时热门版块排行榜    

查看: 3588  |  回复: 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 +7 cratir 2026-08-14 11/550 2026-08-15 06:19 by 学员8dgXkO
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 7lpolszZVXgi 2026-08-14 5/250 2026-08-15 04:41 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
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-15 00:16 by 4wMiSEwB6436
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-14 22:32 by 4wMiSEwB6436
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 关于Filecode分析方法 +9 majunge000 2026-08-10 12/600 2026-08-13 23:20 by iwuli
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[硕博家园] 一作与独作在应聘高校教师时区别大吗 +3 mbygzh 2026-08-08 4/200 2026-08-13 19:31 by 龙-樱
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见