标题:C语言的买气球的问题
只看楼主
酸奶味皮皮虾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:54
注 册:2018-5-26
结帖率:75%
已结贴  问题点数:20 回复次数:25 
C语言的买气球的问题
200元买,红,黄,蓝三种气球共100个,要求 每种颜色气球至少买一个,红气球1元2个,黄气球2元1个,蓝气球5元1个。这个用C语言怎么写呢,谢谢了,大佬们。
我是这样写的,但是不对,我也不知道为啥?感觉没毛病。
int main()
{
    int i,j,k,count=0;
    double sum=0;

    for (i=1; i<100; i++)
        for (j=1; j<100-i; j++)
            for (k=1; k<(100-i-k); k++)
            {
                if ((sum=0.5*i+2*j+5*k)==200)
                    count++;
            }
printf (“count=%d\n”,count);

[此贴子已经被作者于2018-5-27 19:11编辑过]

搜索更多相关主题的帖子: C语言 int count sum for 
2018-05-27 18:09
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
不对?哪不对啊?

剑栈风樯各苦辛,别时冰雪到时春
2018-05-27 18:22
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:8 
别用浮点数

https://zh.
2018-05-27 18:28
酸奶味皮皮虾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:54
注 册:2018-5-26
得分:0 
回复 2楼 林月儿
运行后的结果不对,结果是33,我这个运行后是336
2018-05-27 19:10
酸奶味皮皮虾
Rank: 2
等 级:论坛游民
帖 子:28
专家分:54
注 册:2018-5-26
得分:0 
回复 3楼 lin5161678
用int试了一下,也还是不对,sum的赋值运算语句中有小数啊,不是应该得用浮点数嘛?
2018-05-27 19:14
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
红气球每次买2个就没浮点数了

https://zh.
2018-05-27 19:18
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
这样想 红气球 买的个数是奇数
剩下的钱一定是 X.5
你这5毛钱 不管是买 黄气球还是蓝气球都花不出去
结果你必然无法凑齐200块钱

所以红气球是奇数的情况 全部不满足条件 全部跳过就可以了

[此贴子已经被作者于2018-5-27 19:22编辑过]


https://zh.
2018-05-27 19:20
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
得分:0 
问题在于少了限制条件i+j+k==100,加在if里就可以了。另外第三个for循环的判断条件写的有点问题

printf("萌新一枚,请多指教");
2018-05-27 20:11
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
100是写错不是没写
100-i
100-i-k (这里应该 - j)
==========================
看错 的确少了100限制

[此贴子已经被作者于2018-5-27 21:15编辑过]


https://zh.
2018-05-27 20:28
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:8 
程序代码:
#include<stdio.h>
main()
{   int hong,huang,lan;
    for(hong=1;hong<=400;hong++)
      for(huang=1;huang<=100;huang++)
        for(lan=1;lan<=40;lan++)
         if((0.5*hong+2*huang+5*lan==200)&&(hong+huang+lan==100))
           printf("红气球:%d,黄气球:%d,蓝气球:=%d\n",hong,huang,lan);
         

 }


[此贴子已经被作者于2018-5-27 21:32编辑过]

2018-05-27 20:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487328-1-1.html




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

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