帮忙这一下这个程序,谢谢
#include "stdio.h"
void arr(char *p,int i,int n){
int j,t;
if(i-n)
for(j=i;j<=n;j++){
t=p[i],p[i]=p[j],p[j]=t;
arr(p,i+1,n);
t=p[i],p[i]=p[j],p[j]=t;
}
else{
for(j=0;j<=n;j++)
printf("%c",p[j]);
printf("\n");
}
}
int main(int argv,char *argc[]){
char y[4]="",i,j,k;
const char x[5]="ABCD";
for(i=0;i<4;i++)
for(y[0]=x[i],j=i+1;j<4;j++)
for(y[1]=x[j],k=j+1;k<4;k++){
y[2]=x[k];
arr(y,0,2);
}
printf("\n");
return 0;
}
void arr(char *p,int i,int n){
int j,t;
if(i-n)
for(j=i;j<=n;j++){
t=p[i],p[i]=p[j],p[j]=t;
arr(p,i+1,n);
t=p[i],p[i]=p[j],p[j]=t;
}
else{
for(j=0;j<=n;j++)
printf("%c",p[j]);
printf("\n");
}
}
int main(int argv,char *argc[]){
char y[4]="",i,j,k;
const char x[5]="ABCD";
for(i=0;i<4;i++)
for(y[0]=x[i],j=i+1;j<4;j++)
for(y[1]=x[j],k=j+1;k<4;k++){
y[2]=x[k];
arr(y,0,2);
}
printf("\n");
return 0;
}
运行结果:
温馨提示:答案为网友推荐,仅供参考