C语言,关于全排列问题#includevoid swap(int A,int B){\x09int

发布时间:2021-03-12 05:10:31

C语言,关于全排列问题#includevoid swap(int A,int B){\x09int

网友回答

#include<stdio.h>
void swap(int *A,int *B)  // <-- C语言是传值的,*A 才能影响到外部.
{int m;
m=*A;
*A=*B;
*B=m;
}int main()
{int a[10];
int n,i,j,k,l,isgood;
scanf("%d",&n);
for(i=0;i<n;a[i]=i+1,i++);
for(i=0;i<n;i++) printf("%d ",a[i]);
printf("\n");
for(i=0,j=0;;){
for(k=n-2,isgood=1;k>=0;k--){
if(a[k]<a[k+1]){
isgood=0;
i=k;
break;
}}if(isgood==1) break;
for(l=i;l<n;l++){
for(j=n-1;j>l;j--)
if(a[j]>a[l]) swap(&a[l],&a[j]);//<-- 相应修改.
}for(l=0;l<n;l++) printf("%d ",a[l]);printf("\n");}return 0;}
以上问题属网友观点,不代表本站立场,仅供参考!