打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
030.字符排列
/* 字符串的所有字符排列函数,用已知字符串s中的所有字符,生成由其中n个字符组成的所有字符排列 */
#define N 20
char w[N];
perm(int n, char *s)
{
	char s1[N];
	int i;
	if(n<1)
		printf("%s\n",w); /* 一个排列生成输出 */
	else
	{
		strcpy(s1,s);	/* 保存本层次可使用的字符 */
		for(i=0;*(s1+i);i++)	/* 依次选本层次可用字符 */
		{
			*(w+n-1)=*(s1+i);/* 将选用字符填入正在生成的字符排列中 */
			*(s1+i)=*s1;
			*s1=*(w+n-1);
			perm(n-1,s1+1);	 /* 递归 */
		}
	}
}
main()
{
	int n=2;
	char s[N];
	w[n]='\0';
	clrscr();
	printf("This is a char permutation program!\nPlease input a string:\n");
	scanf("%s",s);
	puts("\nPlease input the char number of permuted:\n");
	scanf("%d",&n);
	puts("The permuted chars are:\n");
	perm(n,s);
	puts("\nPress any key to quit...");
	getch();
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LeetCode 76. 最小覆盖子串
c语言中连续使用两个scanf的问题
C和指针之字符串编程练习9(在参数1中查找匹配参数2额任意字符)
有重复元素的排列问题
UILabel每隔4个字符空两格
算法练习帖--62--替换后的最长重复字符(Java)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服