帮忙改错c++

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:34:37
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
main()
{
char mem[26];
for(int i=0;i<26;i++)
{
mem[i]='A'+i;
}
int n;
cin>>n;
char a[n];
for(int j=0;j<n;j++)
cout<<mem[j];
cout<<endl;
while(next_permutation(mem,mem+n))
{

copy(mem,mem+n,a);
cout<<a<<endl;
}
system("pause");
}

#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
main() // 改为 void main() ,大多数编译器默认不是空,需要返回值。
{
char mem[26]; // 改为 char mem[27]; 最后保留一个'\0'。
for(int i=0;i<26;i++)
{
mem[i]='A'+i;
}
mem[i]='\0'; // 加上这一句,你自己分别运行一下看看区别。
int n;
cin>>n;
char a[n]; // 改为 char *a; a=new char[n+1]; a[n]='\0';
for(int j=0;j<n;j++) // 干嘛不用 for(i=0;i<n;i++) ?
cout<<mem[j];
cout<<endl;
while(next_permutation(mem,mem+n))
{

copy(mem,mem+n,a);
cout<<a<<endl;
}
system("pause");
}

编译通过,实现你的功能

char a[n];

错了,n应该是已经有值的
否则应该这样:
char* a;
a=new char[n];

....
delete a;