用c语言编写程序,输出7,8,9三个数字的全部排列组合顺序

采用递归的方法,用函数void find(int k)来存放第n个数,再用一个数组int pos[4]来表示每个位置上的数字。

求完整源代码

#include<stdio.h>
#define N 3

void aArrange(int a[],int j,int b)
{
int i,k;
int temp;
for(i=j;i<b;i++)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
aArrange(a,j+1,b);
if(j==b-1)
{
for(k=0;k<b;k++)
printf("%d",a[k]);
printf("\n");

}
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

main()
{
int a[N]={7,8,9};
aArrange(a,0,N);
}
采用递归的方法,用函数void find(int k)来存放第n个数,再用一个数组int pos[4]来表示每个位置上的数字。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
#include<stdio.h>
#define N 3

void aArrange(int a[],int j,int b)
{
int i,k;
int temp;
for(i=j;i<b;i++)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
aArrange(a,j+1,b);
if(j==b-1)
{
for(k=0;k<b;k++)
printf("%d",a[k]);
printf("\n");

}
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

main()
{
int a[N]={7,8,9};
aArrange(a,0,N);
}本回答被提问者采纳
第2个回答  2015-05-17
void main()
{

    int maxRow = 5; // 输出行数
    int num = 1;

    for(int i=0 ; i<maxRow ; i++)
    {
        for(int j=0 ; j<=i; j++)

        {
            printf(num++);

            printf("\t");

        }

        printf("\n");

    }  

}

相似回答