帮我看下这个C程序哪错了!!急~~

来源:百度知道 编辑:UC知道 时间:2024/05/23 04:58:09
题目:将1-9这9个数子分成三组(每个数字只能使用一次),分别组成三个三位数,且这三个三位数的值构成1:2:3的比例,试求出所有满足条件的三个三位数。我做的:
#include<stdio.h>
main()
{
int a,b,c,d,e,f,g,h,i,x,y,z;
for(a=1;a<10;a++)
for(b=1;b<10;b++)
for(c=1;c<10;c++)
for(d=1;d<10;d++)
for(e=1;e<10;e++)
for(f=1;f<10;f++)
for(g=1;g<10;g++)
for(h=1;h<10;h++)
for(i=1;i<10;i++)
{x=a*100+b*10+c;
y=d*100+e*10+f;
z=g*100+h*10+i;
if((x/y==1/2)&&(x/z==1/3)&&(y/z==2/3)&&a!=b&&b!=c&&c!=d&&d!=e&&e!=f&&f!=g&&g!=h&&h!=i)
printf("%d,%d,%d",x,y,z);}

}我运行之后无限循环啊!!

x,y,z是int 型,f((x/y==1/2)&&(x/z==1/3)&&(y/z==2/3)这里就不对

a!=b&&b!=c&&c!=d&&d!=e&&e!=f&&f!=g&&g!=h&&h!=i

这个判断不能保证数字都不重复

a=1
b=2
c=1

满足a!=b&&b!=c

不是死循环。是你循环次数太多了。思路不对。谢谢!

哎!少了n个(),还有1/2,2/3的结果都是等于零