字母全排列
答案: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);
}
#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
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);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯