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);
} 展开
#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);
} 展开
展开全部
我猜测题目的意思是求废料最短的截法(你的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米
#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从循环里面拿出来输出
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询