c语言循环编程题!!!求解答!!!

100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马一匹驮0.5担,计算大中小马匹数的各种组合并输出。我写的代码是#include"stdafx.h"intmai... 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马一匹驮0.5担,计算大中小马匹数的各种组合并输出。

我写的代码是
#include "stdafx.h"

int main()
{
int a,b,c;
a=1;
b=1;
c=1;
while(a<=100)
{
a++;
while(b<=100)
{
b++;
while(c<=100)
{
c++;
{
if((a+b+c)==100&&(3*a+2*b+0.5*c)==100)
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
}
}
}
return 0;
}
急问为何算不出结果???万分感谢!!!
展开
 我来答
JmingV
2014-10-22 · 超过22用户采纳过TA的回答
知道答主
回答量:39
采纳率:50%
帮助的人:34.3万
展开全部
用2重for循环,每次循环的初值为0,每重循环的上限为100担货交由一类马来运所需的最大匹数。剩下的一类马的数量用100减去前两类马的总和即可,判断是否满足运掉100担货。。
(由这个思路也可以看出你代码哪里想的有问题了)
哇,你是在弄 oi 吗?厉害。。。
(看到楼下的解法,我认为一般这类题,会考虑某类马为0的情况)
其实上面的思路里有一些小的优化在里面:
1)每重循环的上限为100担货交由一类马来运所需的最大匹数
【马匹数多了没用】
2)设计成2重循环,最后一类马的马匹数直接用100减去前两种所选马匹数就好了,免去了不必要 的循环。。
kaixingui2012
2014-10-22 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6128万
展开全部
#include<stdio.h>
int main()
{
int a,b,c;
a=1;
while(a<=100)
{
b=1;//每轮要有初值
while(b<=100)
{
c=2;//同上,最少两个小马
while(c<=100)
{
if((a+b+c)==100&&(3*a+2*b+c/2)==100)//
printf("a=%d,b=%d,c=%d\n",a,b,c);
c+=2;//小马以2的倍数递增
}
b++;//检查完一轮再改变
}
a++;//同上
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心中风情4
2014-10-22 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1038万
展开全部
每次循环开始都要初始化:
b=1;//加这句
while(b<=100)
{
b++;
c=1;//加这句
while(c<=100)
{
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chq220
2014-10-22 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:105万
展开全部
你这样写出程序的运行顺序是这样的:
a==1,b==1时,c从0到100,然后
a==1, c==100时,b从2到100,然后
b ==100, c==100时,a从2到100。
解决方法就是每次增长到100时,要记得恢复为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尊少丶神人
2014-10-22
知道答主
回答量:13
采纳率:0%
帮助的人:7.2万
展开全部
你的#include "stdio.h"错了 然后没有符合的条件就没有输出呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式