C语言的题目,菜鸟想用穷举法。。用WINTC编译的,求帮助,没结果,不知道问题,,还有就是写的太麻烦了!

1.将1到9这九个数字分成3个三位数a,b,c,要求第1个三位数,正好是第2个三位数的两倍,是第3个三位数的三倍#include"stdio.h"#include"con... 1. 将1到9这九个数字分成3个三位数a,b,c,要求第1个三位数,正好是第2个三位数的两倍,是第3个三位数的三倍
#include "stdio.h"
#include "conio.h"
qbw(int z)
{
return z/100;}
qsw(int z)
{
return z/10%10;
}
qgw(int z)
{
return z%10;}
main()
{int a,b,c,i,z[9];
for(a=369;a<=987;a++) //起始值取c=123最小时a的最大值
for(b=184;b<=494;b++) //起始值同理,终值取a=987最大时的最大值!!
for(c=123;c<=329;c++) //两值都同理!!!
{z[0]=qbw(a);
z[1]=qbw(b);
z[2]=qbw(c);
z[3]=qsw(a);
z[4]=qsw(b);
z[5]=qsw(c);
z[6]=qgw(a);
z[7]=qgw(b);
z[8]=qgw(c);
if(z[0]!=z[1]!=z[2]!=z[3]!=z[4]!=z[5]!=z[6]!=z[7]!=z[8]!=0&&a==2*b==3*c)
printf("a=%d,b=%d,c=%d",a,b,c);
}
getch();
}
展开
 我来答
以以旋0H5
2012-10-23
知道答主
回答量:16
采纳率:0%
帮助的人:5.5万
展开全部
已验证:四种方案:192 384 576.....219 438 657.....273 546 819....327 645 981
#include<stdio.h>
void main()
{
int a1=0,a2=0,a3=0,b1=0,b2=0,b3=0,c1=0,c2=0,c3=0;
int a=0,b=0,c=0;
for(a1=1;a1<=9;a1++)
for(a2=1;a2<=9;a2++)
for(a3=1;a3<=9;a3++)
for(b1=1;b1<=9;b1++)
for(b2=1;b2<=9;b2++)
for(b3=1;b3<=9;b3++)
for(c1=1;c1<=9;c1++)
for(c2=1;c2<=9;c2++)
for(c3=1;c3<=9;c3++)
if(a1!=a2&&a1!=a3&&a1!=b1&&a1!=b2&&a1!=b3&&a1!=c1&&a1!=c2&&a1!=c3&&a2!=a3&&a2!=b1&&a2!=b2&&a2!=b3&&a2!=c1&&a2!=c2&&a2!=c3&&a3!=b1&&a3!=b2&&a3!=b3&&a3!=c1&&a3!=c2&&a3!=c3&&b1!=b2&&b1!=b3&&b1!=c1&&b1!=c2&&b1!=c3&&b2!=b3&&b2!=c1&&b2!=c2&&b2!=c3&&b3!=c1&&b3!=c2&&b3!=c3&&c1!=c2&&c1!=c3&&c2!=c3)
{
a=100*a1+10*a2+a3;
b=100*b1+10*b2+b3;
c=100*c1+10*c2+c3;
if(b==2*a)
if(c==3*a)
printf("%d%d%d %d%d%d %d%d%d ",a1,a2,a3,b1,b2,b3,c1,c2,c3);

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lfp1991lfp
2012-10-04
知道答主
回答量:21
采纳率:0%
帮助的人:15.6万
展开全部
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,k;
for(i=100;i<1000;i++)
for(j=100;j<1000;j++)
{
if(i==2*j)
for(k=100;k<1000;k++)
if(i==3*k)
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
}
不要把问题想得太复杂,一步一步写就行
追问
可是还要满足,,其中不包托0的还有这三个数由1-9组成,但每个数不能出现同样的数字组成,即1-9的数字,每个数字智能用一次!!!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧修谨7X
2012-10-04 · TA获得超过348个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:121万
展开全部
不要连着z[0]!=z[1]!=z[2]!=z[3]!=z[4]!=z[5]!=z[6]!=z[7]!=z[8]!=0这种不等。
分开写,因为你若这样写表示的是如z[0]!=z[1]返回了true(即1)那么它是跟z[2]比了,肯定不行阿。
所以要这样写z[0]!=z[1]&&z[1]!=z[2]......这样写下去。
追问
那还有满足都不等于0啊!!怎么实现,,不会还要写一大串吧!!!怕了!!水平有限,,没办法啊!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
temp2000
2012-10-04 · TA获得超过483个赞
知道小有建树答主
回答量:564
采纳率:100%
帮助的人:354万
展开全部
有这样的数吗?
更多追问追答
追问
网上都有答案的!!就是没C语言的!!没找到能运行的!!
追答
在网上找了下,改了改。
#include
#include
#include

int pos(char * soustr,char ch)
{
int num=0;

for(int i=0;i1){ok=0;break;}
}
if(ok)
{
printf("a=%d,b=%d,c=%d\n",a,b,c);

}
}
printf("没有找到\n");

return 0;}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式