问题:输入一个2~10之间的正整数n,使用字典序法计算并且按照升序输出A~Z中的前n个字母的全排列。比如:输入3;输出:ABC,ACB,BAC,BCA,CAB,CBA.用C或者C++实现。
我的代码如下:其中使用了sort()和next_permutation()函数。
// next_permutation函数实现的升序全排列
#include <iostream>
#include <algorithm>
using namespace std;
int main () {
int n=2;
int myints[]={65,66};
cin>>n;
for(int i=0;i<n;i++)
{
myints[i]=65+i;
}
cout << "升序全排列是\n";
sort (myints,myints+n);//排序,升序
do {
for(int i=0;i<n;i++)
{cout <<char( myints[i] );
if(i==n-1)
{cout<<"\n";}
}
}
while ( next_permutation (myints,myints+n) );
return 0;
}
编译和链接均无任何问题,在C编译器甚至可以很好的运行。可是一到C++编译器,不管是VC++6.0还是Dev-C++都会在输入比3大的数字的时候崩溃掉,究竟是什么问题呢???谢谢了!!!
原来。。。。。。。。如此。。。。。。。。。。。。。。。。。感激不尽!!!