标签:第一个 完成 打印 amp 编程 lock abc putchar block
aa ab ac ba bb bc ca cb cc
fun(指向第一个元素的指针,从m个元素中,取n个元素)
{
for(i=0;i < m;i++)
{ 确定第一个元素的选取方法:=i;
if(n > 1) fun(指向下一个元素的指针,从m中,取n-1个) else 完成一种排列
}
}
#include <stdio.h>
int str[100];
void print(int *p)
{
int *q;
for(q=str;q!=p+1;q++)
{
printf("%c",*q+'a');/*输出结果,将整数转换为字母a起始的序列*/
}
putchar(' ');
}//print
void arrange(int *p,int m,int n)/* 从m个元素中取n个存入数组p中*/
{
int i; /*用数0~m-1表示m个不同的元素*/
for(i=0;i<m;i++) /*依次从数0开始逐个作为第一个元素*/
{
*p=i;
if(n>1)
{
arrange(p+1,m,n-1);
}
else print(p);
}
}//arrange
int main()
{
int m,n;
scanf("%d%d",&m,&n);
while(n>m)
{
printf("\nEnter error,please enter again(m>=n)\n");
scanf("%d%d",&m,&n);
}
arrange(str,m,n);//递归调用
putchar('\n');
return 0;
}//main
标签:第一个 完成 打印 amp 编程 lock abc putchar block
原文地址:https://www.cnblogs.com/DismalSnail/p/10546238.html