这个题怎么解?用C语言

来源:百度知道 编辑:UC知道 时间:2024/05/19 08:25:31
任取1-9四个互不相同的数,使它们的和为12.输出所有满足上述条件的4个数的排列.如{1,2,3,6},{1,3,2,6}{1,2,6,3}{1,3,6,2}.........

void main()
{ int m,n,p,q;
for(m=1;m<10;m++)
for(n=1;n<10;n++)
for(p=1;p<10;p++)
for(q=1;q<10;q++)
if(m!=n&&m!=p&&m!=q&&n!=p&&n!=q&&p!=q&&p+q+m+n==12)
printf("%d %d %d %d\n",m,n,p,q);
}
我的答案完全符合你的要求,我已经运行过了,没错.

楼上的效率都不高
况且一楼的有语法错误
我来个高的:
main()
{
int i,j,k,n;
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
if(i!=j)
{
for (k=1;k<10;k++)
if(k!=j)
{
for (n=1;n<10;n++)
if(n!=k&&i+j+k+n==12)
{
printf("%d,%d,%d,%d\n",i,j,k,n);
}
}
}
}
}
}

随手写的,也没有调试

main()
{
int i,j,k,n;
printf("\n");
for(i=1;i<10;i++) /*以下为四重循环*/
for(j=1;j<10;j++)
for (k=1;k<10;k++)
for (n=1;n<10;n++)