永发信息网

C++百钱买百鸡实例纠正

答案:2  悬赏:10  手机版
解决时间 2021-01-08 07:05
C++百钱买百鸡实例纠正
最佳答案
程序中的判断出问题了,第二和第三个循环里的d-aaa和d-aaa-bbb都有可能是负数,这个没有考虑到,代码应该改为:
 30         //定义一个循环,如果母鸡小鸡相加的钱要大于剩下的钱就执行if语句
 31         for (int j = 1; j < 10000; j++)
 32         {
 33             printf("d-aaa = %d", d - aaa);
 34             if ((b*j + c*j >= d - aaa) && (d-aaa)>0)
 35             {
 36                 bb = j;                    //获取母鸡的数量
 37                 bbb = b*j;                 //获取母鸡的钱
 38                 break;                     //跳出
 39             }else{
 40                 bb = 0;
 41                 bbb = 0;
 42             }
 43         }
 44         //定义一个循环,如果母鸡小鸡相加的钱要大于剩下的钱就执行if语句
 45         for (int k = 1; k < 10000; k++)
 46         {
 47             printf("d-aaa - bbb= %d", d - aaa - bbb);
 48             if ((c*k >= d - aaa - bbb) && (d - aaa - bbb) > 0)
 49             {
 50                 cc = k;                     //获取小鸡的数量
 51                 break;
 52             }else{
 53                 cc = 0;
 54             }
 55         }追问感谢你的回答,但我想问的是如何保证输入数据不会出错,现在我写的代码是只能由大到小输入三个数字,否则就出错,我想实现的三个数字,随便哪个大哪个小都能计算追答这个题你当初的构思就存在问题的,第一个for循环中,if (a*i + b*i + c*i >= d)这一句就有不合理的地方,为什么三个单价都要和“i”相乘?类似的问题还有好多,如果想避免你说的错误,那就是把框架重新构思一下,看看怎么设计更加严密。追问在这里,i我把它当成数量,只要这三个单价*数量的值是大于d的,就停止循环,并把这个数量保存。

我的意思是,公鸡母鸡小鸡的单价是随意的,小鸡的单价可能是最高的,也可能是中间,但是我这个程序只能识别公鸡>母鸡>小鸡的单价去计算,只要我输入的值不是公鸡>母鸡>小鸡,运算就会失败,我想更正,但不知道怎么更正追答我这里有一个比较笨的方法可以解决这个问题,就是你在计算之前,先去对用户输入的三个单价进行从大到小排序,然后计算时,先去执行最大的,再去执行中间的,然后算出最小的。而且,现在的程序还有一个问题:
 44         //定义一个循环,如果母鸡小鸡相加的钱要大于剩下的钱就执行if语句
 45         for (k = 1; k < 10000; k++)
 46         {
 47             //if ((c*k >= d - aaa - bbb) && (d - aaa - bbb) > 0)//此处c*k不能大于钱数
 48             if ((c*k >= d - aaa - bbb) && (d - aaa - bbb) > 0)
 49             {
 50                 cc = k - 1;//应该去掉一只                     //获取小鸡的数量
 51                 break;
 52             }
 53             else if(c*k == d - aaa - bbb){
 54                 cc = k;
 55             }
 56             else{
 57                 cc = 0;
 58             }
 59         }
 60         printf("记着了骚年,你能买 %d 只公鸡,%d 只母鸡,%d小鸡*_*
", aa, bb, cc);
 61     }
全部回答
该代码实现的是公鸡数目>=母鸡数目>=小鸡数目,而不是楼主说的那样,这个和输入没关系追问感谢你的回答,这就是我想要更正的,我不会怎么去更正,现在实现的公鸡的数目必须是最大,母鸡次之,小鸡最少才能运气正确,我想要更正,公鸡母鸡小鸡,随意哪个数大哪个数小都没问题追答公鸡单价少也不会运行出错吧,只能说输出结果不是你要的。
如果去掉数目递减限制,就是一个不定方程,解很多,你要给限定条件才行的,其实我不太明白你意思追问我的意思是,公鸡母鸡小鸡的单价是随意的,小鸡的单价可能是最高的,也可能是中间,但是我这个程序只能识别公鸡>母鸡>小鸡的单价去计算,只要我输入的值不是公鸡>母鸡>小鸡,运算就会失败,我想更正,但不知道怎么更正
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
上海杰意展览服务有限公司怎么样?
2008年世界港口前10排名
超微x8dtl-3和华硕z8na-d6哪个好
我是大专毕业,13年考的护士资格证14年注册的
你好,网络连接受限诊断出的问题是wlan和以太
-x^2+4xy-4y^2因式分解
现在不能买office365国际版了么
趣味练习
建筑中的楼梯放大图怎么画
C语言,要求TC环境下的
你说这黑客吧 有没有漂亮MM
93年属鸡几月出生的最好
张韶涵一首翻唱生物股长《yell》的歌叫什么?
多年患有腕管炎,最近1个多月,总是反复
以徐州到烟台长岛应是烟台下还是烟台南下
推荐资讯
智能锁和小区门禁卡可以用一同一张卡吗?
现在买8+128G的一加5好不好买?
冬瓜的做法大全怎么做
哪个棉袄好看
生命线2怎么和泰勒再来一段旅行
求初学乌克丽丽简单的尤克里里和弦指法
如何解决Win8.1无法启动打印机
52比 3的比值 六十五比五十二的比值是多少
麦弗逊式独立悬挂和复合牛扭力梁式非独立悬挂
500x500x200毫米是多少平米
出纳人员能兼任固定资产账目的登记工作吗?
50克重的月饼需要多少克的咸蛋黄
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?