#include<iostream.h>
void Perm(int [], int ,int ); inline void Swap(int&,int&);
void main() { int k,m,list[10]={0,1,2,3,4,5,6,7,8,9}; cout<<"enter the k and m:\n"; cin>>k; cout<<endl; cin>>m; Perm(list,k,m);
main();
}
void Perm(int list[], int k ,int m) { if(k==m) { for(int i=0;i<=m;i++) cout<<list[i]; cout<<endl; } else for(int i=k;i<=m;i++) { cout<<" k="<<k<<endl; cout<<"自加后 i="<<i<<endl; Swap(list[k],list[i]); cout<<"after swaping "<<endl; Perm(list,k+1,m); Swap(list[k],list[i]); cout<<"now k="<<k<<endl; cout<<"now i="<<i<<endl; } }
inline void Swap(int &a,int &b) { int temp=a;a=b;b=temp; }
上面是程序: 我想请教的是,当K=0-,M=2,为什么运行时,K=1后还能变为0 . 哪位能帮忙,先谢谢了!! [em4]