C语言程序有谁知道帮忙修改一下,急

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:33:51
#include<stdio.h>
main()
{
int a[4]={1,3,4,7};
int b[4]={2,5,8,10};
int c[4]={1,2,11,12};
int i,j,k,m,n;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i==3) m=0;//形成的a[3]&a[0]或b[3]&b[0]组合
else m=i+1; //a[i]和a[m]或者b[i]和b[m]
if(j==3) n=0;//形成的c[3]&c[0]组合
else n=j+1; //c[j]和c[n]
printf("%d&%d&%d\t,",a[i],c[j],c[n]);//a[]中一个c[]中两个
printf("%d&%d&%d\t,",b[i],c[j],c[n]);//b[]中一个c[]中两个
printf("%d&%d&%d&%d\t,",a[i],a[m],c[j],c[n]);//a[]中两个c[]中两个
printf("%d&%d&%d&%d\t,",b[i],b[m],c[j],c[n]);//b[]中两个c[]中两个
for(k=0;k<4;k++)
{
printf("%d&%d&%d&%d\t,",a[i],b[k],c[j],c[n]);//a[]中一个b[]中一个c[]中两个
}
}
getch();
}

新手求救,有谁帮忙改一下,要求如下:
int b[4]={2,5,8,10}改为 int b[6]={2,5,6,8,10,11}
int c[4]={1,2,11,12}改为 int c[5]={1,2,12,13,14} ,
另外组合的里的数字不能重复,
我先谢谢你了。

#include<stdio.h>
main()
{
int a[4]={1,3,4,7};
int b[6]={2,5,6,8,10,11};
int c[5]={1,2,12,13,14};
int i,j,k;
for(i=0;i<4;i++)
/*循环读取A数组*/
{
for(k=0;k<4;j++)
/*循环读取C数组,因为C中要取两个数,所以只循环到第c[3],即第4个数*/
{
if(a[i]!=c[k] && a[i]!=c[k+1])
/*A和C中的数不相等即可,C中无重复数,所以不用判断c[k]与c[k+1]*/
{printf("%d,%d,%d,",a[i],c[k],c[k+1]);}
}
}
/*以上两循环是抽取A和C中的不重复组合*/
for(j=0;j<6;j++)
/*循环读取B数组*/
{
for(k=0;k<4;j++)
/*循环读取C数组*/
{
if(b[j]!=c[k] && b[j]!=c[k+1])
/*B和C中的数不相等即可,C中无重复数*/
{printf("%d,%d,%d",b[j],c[k],c[k+1]);}
}
}
/*以上两循环是抽取B和C中的不重复组合*/
}

/*我没有TC2.0的调试环境,请你自己试试,若我把你的题意理解正确的话应当没有错了。若语法有错的话,我想算法应当是对的。
不知道你的题意中是否还包括A,B,C三个数组一起组合为4个数的组合,因为你的程序中有这一句,
printf("%d&%d&%d&%d\t,",a[i],b[k],c[j],c[n]);//a[]中一个b[]中一个c[]中两个
我没有写出,相信程序写到这里,你可由此算法写出ABC数组中的不重