永发信息网

字母全排列

答案:1  悬赏:80  手机版
解决时间 2021-11-19 20:46
  • 提问者网友:末路
  • 2021-11-18 23:59
字母全排列
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-11-19 01:16
这个任务编一个简单的程序就能完成。C语言程序如下:

#include
#include
#define MAX 100

char s[MAX]; //要排列的字母
char p[MAX]; //当前排列
bool used[MAX]; //每个字母是否用过,全局数组初值为false
int n; //字母个数

void output() {
printf("%s\n", p);
}

void perm(int l) { //当前排第l个字母
for (int i=0; i if (!used[i]) { //如果某个字母没排过
p[l] = s[i]; //就排它
used[i] = true;
if (l==n-1) output(); else perm(l+1); //如果字母够了,则输出,否则排下一个
used[i] = false;
}
}
}

void main() {
printf("Input a line of letters: ");
gets(s);
n = strlen(s);
p[n] = '\0'; //结束符
perm(0);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯