C语言的题目:有一根长度为323米的钢材,要将它截取为两种规格a,b的长度分别为17米和27米的短料, 10

问题就是我写了个程序但是运行出来的是a=18,b=0,r=1,正确答案应该是11,5,1,这是为什么呢#include<stdio.h>main(){inta,b,a1,... 问题就是 我写了个程序 但是运行出来的是a=18,b=0,r=1,正确答案应该是11,5,1,这是为什么呢
#include<stdio.h>
main()
{
int a,b,a1,b1,r,rmin;
a=1;b=1;r=323-17-27;
for(a=1;a<=(323-27)/17;a++);
{
b=(323-17*a)/27;
r=323-17*a-27*b;
if(r<rmin)
rmin=r;a1=a;b1=b;
}
printf("a=%d,b=%d,min=%d",a1,b1,rmin);
}
展开
 我来答
Wadza
推荐于2017-11-23 · TA获得超过353个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:109万
展开全部
我猜测题目的意思是求废料最短的截法(你的rmin压根没定义,没耐心看你代码错在哪,直接自己敲了),代码如下,注释如下
#include<stdio.h>
void main()
{
int a,b,c,cmin=323,x,y;
//a为17米的根数,b为27米的根数,c为废料长度,
//cmin为最短废料长度,x,y存放a,b
//废料长度先初始化为323;
for(a=0;17*a<323;a++)//尝试从0根到截17米最多根数中的所有值
{
b=(323-17*a)/27;//b为27米的根数
c=(323-17*a)%27;//c为取余数,即废料长
if(c<cmin){
cmin=c;
x=a;
y=b;
//每次都输出废料减少的a,b,废料长度,可以观察过程
printf("%d,%d,%d\n",a,b,cmin);
//最后一行就是废料最短的截法
}
}

结果为:
0,11,26
1,11,9
3,10,2
11,5,1
所以11,5,废料为1米
追问
如果我想要只输出11,5,1,应该怎么修改?
追答
那就把printf从循环里面拿出来输出
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式