首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2664: “fenzu”: 不能将参数 二 从“int”转换为“int []”

2012-10-28 
error C2664: “fenzu”: 不能将参数 2 从“int”转换为“int []”void fenzu(int n, int a[],int *M_icitycount

error C2664: “fenzu”: 不能将参数 2 从“int”转换为“int []”
void fenzu(int n, int a[],int *M_icitycount,int *M1,int *M2,int *M3)
{
*M_icitycount=0;
*(M_icitycount+1)=0;
*(M_icitycount+2)=0;
for(int j=0;j<n;j++)
{
if(cc[a[j]].M==1)
{
M1[M_icitycount[0]]=j;
M_icitycount[0]++;
}
else if(cc[a[j]].M==2)
{
M2[M_icitycount[1]]=j;
M_icitycount[1]++;
}
else 
{
M3[M_icitycount[2]]=j;
M_icitycount[2]++;
}
}
}


先定义一个类
class ant
{
public:

double prob[icitycount];
int m_icitycount;
int allowedcity[icitycount];
int tabu[icitycount];
double m_dlength;
double m_dshortest;

ant();

void clear();
void updateresult();
void addcity(int city);
int choosenextcity();
void move();

}

调用语句:

ants[iantcount];fenzu(ants[i].m_icitycount,ants[i].tabu[m_icitycount],&M_icitycount[0],&M1[0],&M2[0],&M3[0]);




错误就是“error C2664: “fenzu”: 不能将参数 2 从“int”转换为“int []””

为什么啊 ?大侠帮帮忙!

[解决办法]
你说为什么呢。清清楚楚的写着呢。
参数是数组,你ants[i].m_icitycount是int型的吧。
[解决办法]
就是你这个实参的原因啊,ants[i].tabu[m_icitycount],你的tabu是个数组,而ants[i].tabu[m_icitycount]只是个int型的值,你要改为传入一个数组。
[解决办法]
你的实参 ants[i].tabu[m_icitycount] 是个int、
你的形参 int a[] 是个int[],需要比配

热点排行