69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
void pnm2(int n, char src[], int m, int pos)
{
if(m==0)
{
int i;
for(i=-1*pos; i<0; ++i)
{
printf("%c", src[i]);
}
printf("\n");
return;
}
else
{
int i;
for(i=0; i<n; ++i)
{
int temp = src[0];
src[0] = src[i];
src[i] = temp;
pnm2(n-1, &src[1], m-1, pos);
temp = src[0];
src[0] = src[i];
src[i] = temp;
}
}
}
void main()
{
int n = 3;
char obj[4] = {'0','1','2','3'};
pnm2(4, obj, n, n);
}
#include <stdio.h>
#include <stdlib.h>
void pnm(int n, char src[], int m, char des[], int pos)
{
if(m==0)
{
while(--pos>=0)
{
printf("%c", des[pos]);
}
printf("\n");
return;
}
else
{
int i;
char *new_src = (char*)malloc((n-1)*sizeof(char));
for(i=0; i<n; ++i)
{
des[pos] = src[i];
int j;
for(j=0; j<i; ++j)
{
new_src[j] = src[j];
}
while(j<n-1)
{
new_src[j] = src[j+1];
++j;
}
pnm(n-1, new_src, m-1, des, pos+1);
}
}
}
void main()
{
int n = 2;
char obj[9] = {'0','1','2','3','4','5','6','7','8'};
char *des = (char*)malloc(n*sizeof(char));
pnm(9, obj, n, des, 0);
}