解题思路:

注意事项:两种代码,第二种交换的代码由于最终打印顺序不同通过不了此题

参考代码:

#include <stdio.h>

#include <string.h>

#include <stdbool.h>

bool judge[26];

char s[26];

char temp[26];

int lens;

void arrange(int index){

int j;

if(index==lens){

printf("%s\n",temp);

} else{

for(j=0;j<lens;j++){

if (judge[j]==1){

temp[index]=s[j];

judge[j]=0;

arrange(index+1);

judge[j]=1;

}

}

}

}

int main(){

//char s[26];

int i;

scanf("%s",s);

lens=strlen(s);

for(i=0;i<lens;i++){

judge[i]=1;

}

arrange(0);

}


第二种

#include <stdio.h>

#include <string.h>

char s[26];

int lens;

void swap(char *a,char *b){

char t;

t=*a;

*a=*b;

*b=t;

}

void arrange(int st,int e ){

int i,j;

if(st==e) {

printf("%s\n",s);

}

else{

for(i=st;i<lens;i++){

swap(&s[st],&s[i]);

//printf("%s\n",s);

arrange(st+1,e);

swap(&s[i],&s[st]);

}

}

}

int main(){

//int lens;

scanf("%s",s);

lens=strlen(s);

//printf("%d",lens);

arrange(0,lens-1);

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论