C语言,已知6<=a<=30,15<=b<=36,求满足方程2a+5b=126的全部整数解。 请问哪里错了?

#include<stdio.h>intmain(){inta=6,b=15,i,j;printf("满足方程2a+5b=126的全部解为:\n");for(i=6;i<... #include <stdio.h>
int main ()
{int a=6,b=15,i,j;
printf("满足方程2a+5b=126的全部解为:\n");
for (i=6;i<=30;i++)
{ for(j=15;j<=36;j++)
{if(a==(126-5*b)/2)
{printf("(%d,%d)\n",a,b);
b++;
}
else
b++;
}
a=a+1;
}
return 0;
}
展开
 我来答
强哥JX2010
2012-04-05 · TA获得超过514个赞
知道答主
回答量:36
采纳率:0%
帮助的人:44.1万
展开全部
我看了下你的结果,我改动了下你的程序,如下:

#include <stdio.h>
int main ()
{
int a=6,b=15,i,j;
printf("满足方程2a+5b=126的全部解为:\n");
for (a=6;a<=30;a++)
{
for(b=15;b<=36;b++)
{
if(2*a+5*b==126)
printf("a=%d b=%d\n",a,b);
}
}
return 0;
}

//运行结果
//满足方程2a+5b=126的全部解为:
//a=8 b=22
//a=13 b=20
//a=18 b=18
//a=23 b=16
//Press any key to continue

因为6<=a<=30,15<=b<=36,所以直接拿a和b来运算就行,如果又额外用i和j来计算,会造成计算次数和数值错误。上面有我的运行结果,程序计算方式是:当a=6时,b从15到36遍历一遍,看是否有满足条件的b,有则打印a和b,无则不执行任何操作;当a=7时,b从15到36遍历一遍......直到a=30,b从15到36遍历一遍,看是否存在。判断下来即可以把所有符合要求的a和b找到,不会有计数次数和数值上的错误。

希望对你有帮助!有啥问题咱们继续探讨。
yongpeng256
2012-04-05 · TA获得超过465个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:232万
展开全部
#include <stdio.h>
void main ()
{int a,b;
printf("满足方程2a+5b=126的全部解为:\n");
for (a=6;a<=30;a++)
{ for(b=15;b<=36;b++)
{if((2*a+5*b)==126)
{printf("(%d,%d)\n",a,b);
b++;
}
else
b++;
}
a=a+1;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yqw0511
2012-04-05 · TA获得超过172个赞
知道答主
回答量:97
采纳率:0%
帮助的人:57.1万
展开全部
#include <stdio.h>
int main ()
{
int a=6,b=15,i,j;
printf("满足方程2a+5b=126的全部解为:\n");
for (i=6;i<=30;i++)
{
for(j=15;j<=36;j++)
{

if(i==(126-5*j)/2)
{
printf("(%d,%d)\n",i,j);
}
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式