C++高手们帮忙,急!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 23:32:52
一道abcd所有子集的题,编写如下:
#include <iostream>
#include <string>
#include <cmath>
extern int l=0;
using namespace std;
void ziji(string *a,int k,string *list)
{
if(k==0)
{
list[l]=a[k];
cout<<list[l]<<endl;
l++;
}
else
{
ziji(a,k-1,list);
list[l]=a[k];
cout<<list[l]<<endl;
l++;
int m=l;
for(int i=0;i<m-1;i++)
{
list[l]=list[i]+a[k];
cout<<list[l]<<endl;
l++;
}
}
}
void main()
{
string a[] = { "a", "b","c", "d","e"};
int changdu=pow(2,5);
string *list=new string[changdu];
ziji(a,5,list);//程序异常退出,该行以下的指令都不运行,到底是什么原因啊???
}

ziji(a,5,list);改成
ziji(a,4,list);

楼上是对的.因为你的ZIJI函数用的参数是以数组方式的下标一样的.所以传进去的参数也必须是数组那样的下标...

他们说的都对,你的ZIJI函数用的参数是以数组方式的下标一样的。所以传进去的参数也必须是数组那样的下标!!!