Lyn_Lin 2014-11-12 12:31
浏览 1474

请教大神:如何使全排列按从小到大的顺序输出?

现在只能输出全排列。

代码如下:

#include
int main()
{
void change(int *a,int *b,int temp);
void pai(int *num,int i,int n);
int num[10];
int i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;++i)
num[i]=i+1;
pai(num,0,n-1);
printf("\n");
}
return 0;

}

void change(int *a,int *b,int temp)
{
temp=*a;
*a=*b;
*b=temp;
}

void pai(int*num,int i,int n)
{
int j,temp;
void change(int *a,int *b,int temp);
if(i==n)
{
printf("(%d",num[0]);
for(j=1;j<=n;++j)
printf(", %d",num[j]);
printf(")");
}
else
{
for(j=i;j<=n;++j)
{
change(&num[i],&num[j],temp);
pai(num,i+1,n);
change(&num[i],&num[j],temp);
}
}

}

求教O(∩_∩)O

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 chaquopy python 安卓
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 有没有帮写代码做实验仿真的
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥30 vmware exsi重置后登不上
    • ¥15 易盾点选的cb参数怎么解啊
    • ¥15 MATLAB运行显示错误,如何解决?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题