| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:求助 -请帮我看一下这个程序有什么问题(关于一道简单的数学题)
只看楼主 加入收藏
b1049453056
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求助 -请帮我看一下这个程序有什么问题(关于一道简单的数学题)
请先看题目
在美国有一个连锁店叫7-11.这样叫的原因可能是因为他们以前常常是早晨7点开门晚上11点关门,但现在他们全天营业.有一天,一个顾客在其中的一个店里挑了四样东西,然后他到收银台去交钱.营业员拿起计算器,按了一些键,然后说道:“总共是$7.11。”
这个顾客开了个玩笑说:“哦?难道你们的店名叫7-11,所以我就要付$7.11吗?”
营业员没听出是个玩笑,回答说:“当然不是的!我已经把这四样东西的价格相乘才得出这个结果的!”
顾客一听非常吃惊,“你怎么把它们相乘呢?你应该把他们相加才对嘛。”
营业员答道:“哦,对了,真是抱歉,我今天非常头疼,所以把键按错了。”
然后营业员将结果重算了一遍,将这四件商品的价格加在一起,然而令他们俩更吃惊的是总和也是$7.11。
现在我们的任务就是找出这四种商品的价格是多少!
 我的解答如下:
#include<stdio.h>
main()
{double a,b,c,d;
 for(a=0.01;a<7.11;a=a+0.01)
   {for(b=0.01;b<7.11-a;b=b+0.01)
       {for(c=0.01;c<7.11-a-b;c=c+0.01)
           {d=7.11-a-b-c;
            if(a*b*c*d==7.11) printf("the number a=%lf b=%lf c=%lf d=%lf",a,b,c,d);
            }
       }
   }
 printf("OK\n");
}
可是在编译的时候只出现了OK两个字,最终的运算结果却没出来,我是个初学者,不知自己写的程序是在哪里出了问题,希望有高手能帮忙解决一下。
搜索更多相关主题的帖子: 数学题 
2009-10-24 16:31
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:5 
a*b*c*d==7.11
这样的条件是很难满足的,可以这样考虑:
if((abs(a*b*c*d-7.11)<1e-5)&&(abs(a+b+c+d-7.11)<1e-5))
2009-10-24 17:11
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:5 
不是你的程序有问题,,而是这个条件if(a*b*c*d==7.11) printf("the number a=%lf b=%lf c=%lf d=%lf",a,b,c,d); 没有执行。。所以没有结果出来
可以考虑2楼算法
2009-10-24 18:00
梁子
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:191
注 册:2009-9-20
收藏
得分:10 
#include<stdio.h> //结果 a=1.2  b=1.25  c=1.5   d=3.16   m=7.11
#include<math.h>
#define N 1
int main(void)
{
    int i=0;
    double a,b,c,d,m;
    for(a=0.01;a<7.11&&i<N;a=a+0.01)
        {for(b=0.01;b<7.11-a&&i<N;b=b+0.01)
            {for(c=0.01;c<7.11-a-b&&i<N;c=c+0.01)
                {
                    d=7.11-a-b-c;
                    m=a*b*c*d;
                    if(m-7.11<0.000001&&7.11-m<0.000001)
                    {
                        printf("the number a=%lf b=%lf c=%lf d=%lf\n",a,b,c,d);
                        printf("%lf\n",m);
                        i++;
                    }
 
                 }
             }
        }
printf("OK\n");
return 0;
}
2009-10-24 18:12
b1049453056
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-24
收藏
得分:0 
谢谢各位了
2009-10-25 12:35
快速回复:求助 -请帮我看一下这个程序有什么问题(关于一道简单的数学题)
数据加载中...
 
   



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

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