无锡明和:电脑高手过来看.求解C语言题

来源:百度文库 编辑:高校问答 时间:2024/04/28 01:31:05
C的题目,本人考试要用.先谢谢个位了.
设计一个程序,输出自然数1到M的所有K排列.M最大值为16.
要求调用函数.
例: M=4 K=3
输出: 123
124
134
234

#include<stdio.h>
#include<conio.h>
#define M 4
#define K 3
char str[M+1];
void getcom(int n,int c);
void main()
{
str[M]=0;
getcom(M,K);
getch();
}

void getcom(int m,int k)
{
if(k==0)
printf(\"%s\\n\",str);
else
while(m>0)
{ str[K-k]=(M-m+1)+0x30;
getcom(--m,k-1);
}
}

你要求的是组合不是排列.