您的位置:首页 > 其它

超简单的组合排列问题

2007-12-10 12:35 344 查看
#include "stdio.h"
#include"stdlib.h"
int count = 0;
int size(char *a)
{
int i=0;
while(a[i]!='/0'){
i++;
}
return i;
}
void deal(char *a, int m, int n)
{
int i;
char t;
if (m<n-1) {
deal(a, m+1, n);
for (i=m+1;i<n;i++) {
t=a[m]; a[m]=a[i]; a[i]=t;
deal(a, m+1, n);
t=a[m]; a[m]=a[i]; a[i]=t;
}
} else
{
count++;
printf("%s/t",a);
}
}
void main()
{
int i;
char *a;
a = (char *) malloc(sizeof(char));
printf("input a string:(Enter to stop)");
gets(a);
i=size(a);
deal(a,0,i);
printf("%d/n",count);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: