 |
|
leunggamciu
V2EX member #41826, joined on 2013-07-08 16:27:12 +08:00
|
leunggamciu's recent replies
使用容器来`make`一个实例和手动`new`一个实例最主要的区别是在于依赖的解决。使用`new`,你需要手动传递所有必需的依赖;而使用`make`,当依赖被提前配置好的情况下,容器会帮你解决这部分依赖。这个和接口应该没有什么关系吧
上GDB,上单步,当你最终发现问题的时候你会有一种豁然开朗和想一刀捅死自己的感觉!
刚学C的时候写的,用递归比较好理解,可以[先固定第一个字符,对余下的字符作全排列],因为一个字符的全排列就是它本身,所以这里就构成了一个递归
void prem(char *list,int i,int n)
{
int j;
if(i==n)
{
for(j=0;j<=n;j++)
printf("%c",list[j]);
printf(" ");
}
else
{
for(j=i;j<=n;j++)
{
SWAP(&list[i],&list[j]);
prem(list,i+1,n);//处理子序列
SWAP(&list[i],&list[j]);
}
}
return;
}
char list[] = "1234";
prem(list,0,3);