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[],需要比配