三个集合,排列组合,用过的元素不可第二次使用。列出所有的组合可能。

每个集合包含3个不同的元素。例,A(1,2,3)B(4,5,6)C(7,8,9)。

需要的效果是什么样的呢?是A中取一个,B中取一个,C中取一个进行组合排列还是可以A中取2个?选择规则和结果麻烦列出来,为你解答

ABC中各取一个。举个例子来说,A(1,2)B(3,4)C(5,6)最终结果应该是{(1,3,5)(2,4,6)}、
{(1,4,5),(2,3,6)}、{(1,3,6)(2,4,5)}等等……

按你举例的是这么个搞法:

    int A[3] = { 1,2,3 };
    int B[3] = { 4,5,6 };
    int C[3] = { 7,8,9 };
    int i = 0;
    int j = 0;
    int k = 0;
    for (i = 0; i < 3;i++)
    {
        for (j = 0; j < 3;j++)
        {
            for (k = 0; k < 3;k++)
            {
                printf("%d,%d,%d\n", A[i], B[j], C[k]);
            }
        }
    }

数字只是一个代号,不能利用i++这种,因为实际的数字不是这样有规律性的

int A[3] = { 1,2,3 };
int B[3] = { 4,5,6 };
int C[3] = { 7,8,9 };
int i = 0;
int j = 0;
int k = 0;
for (i = 0; i < 3;i++)
{
for (j = 0; j < 3;j++)
{
for (k = 0; k < 3;k++)
{
printf("%d,%d,%d\n", A[i], B[j], C[k]);
}
}
}
数字只是一个代号,不能利用i++这种,因为实际的数字不是这样有规律性的????????
这只是数组索引
int a[5]={3,4,7,9,11};
for (int i=1;i<=4;i++)
{
a[i]........//此时a[i] !=i
}

描述不明确啊,题目说用过的元素不能第二次使用,那么你再后面答题的距离感觉并不是这样啊 !

图片说明

你指的元素到底是数组里的单个元素,还是三三组合之后的元素呢?(比如 1,4,7 和 7,4,1)

我想要的是MATLAB的运算,不是python或者Java,C等程序语言,谢谢各位