c++问题 常见错误改正 以下问题怎么改正?
doublebigness(cft*blk,intblknb){for(intiblk=1;iblk<=blknb;iblk++){blk[iblk].bigness=b...
double bigness(cft *blk,int blknb)
{
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
void sevaluatesort(cft *blk, int blknb)
{
float nfour1,nfour2,nfour3,nfour4;
cft temp;
bool noswap;
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].sevaluate_result=nfour1*blk[iblk].bigness/spc_origin.bigness+nfour2*blk[iblk].l /spc_origin.l+nfour3* blk[iblk].w/ spc_origin.w+nfour4* blk[iblk].h/spc_origin.h;
}
for (int i=0; i < blknb-1; i++)
{
noswap = true;
for (int j=1; j<=blknb-i-1; j++)
{
if (blk[j].sevaluate_result<blk[j+1].sevaluate_result)
{
temp=blk[j];
blk[j]=blk[j+1];
blk[j+1]=temp;
noswap = false;
}
}
if(noswap)
{
break;
}
}
}
error C2065: “iblk”: 未声明的标识符
error C2228: “.bigness”的左边必须有类/结构/联合
1>c:\documents and settings\administrator\桌面\蜜蜂进化\13\13.cpp(917) : error C2065: “spc_origin”: 未声明的标识符
struct cft
{
double l,w,h,bigness,sevaluate_result;
double a,b,c;
int l_indicat,w_indicat,h_indicat,worth;
};
前面声明的部分。 展开
{
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
void sevaluatesort(cft *blk, int blknb)
{
float nfour1,nfour2,nfour3,nfour4;
cft temp;
bool noswap;
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].sevaluate_result=nfour1*blk[iblk].bigness/spc_origin.bigness+nfour2*blk[iblk].l /spc_origin.l+nfour3* blk[iblk].w/ spc_origin.w+nfour4* blk[iblk].h/spc_origin.h;
}
for (int i=0; i < blknb-1; i++)
{
noswap = true;
for (int j=1; j<=blknb-i-1; j++)
{
if (blk[j].sevaluate_result<blk[j+1].sevaluate_result)
{
temp=blk[j];
blk[j]=blk[j+1];
blk[j+1]=temp;
noswap = false;
}
}
if(noswap)
{
break;
}
}
}
error C2065: “iblk”: 未声明的标识符
error C2228: “.bigness”的左边必须有类/结构/联合
1>c:\documents and settings\administrator\桌面\蜜蜂进化\13\13.cpp(917) : error C2065: “spc_origin”: 未声明的标识符
struct cft
{
double l,w,h,bigness,sevaluate_result;
double a,b,c;
int l_indicat,w_indicat,h_indicat,worth;
};
前面声明的部分。 展开
2个回答
展开全部
你的程序不完整,只能帮你修改已知的部分,看后面的注释:
struct cft
{
double l,w,h,bigness,sevaluate_result;
double a,b,c;
int l_indicat,w_indicat,h_indicat,worth;
};
double bigness(cft *blk,int blknb)
{
int iblk; //在这里定义,可以作为函数返回值用
for (iblk=1; iblk<=blknb; iblk++) //你在 for 里面声明的 int iblk ,
//出循环就失效了,所以不能作为返回值用
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
void sevaluatesort(cft *blk, int blknb)
{
float nfour1,nfour2,nfour3,nfour4;
cft temp;
bool noswap;
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].sevaluate_result=nfour1*blk[iblk].bigness/spc_origin.bigness+nfour2*blk[iblk].l /spc_origin.l+nfour3* blk[iblk].w/ spc_origin.w+nfour4* blk[iblk].h/spc_origin.h;
} // 这里的spc_origin 你没有定义,所以不能使用
for (int i=0; i < blknb-1; i++)
{
noswap = true;
for (int j=1; j<=blknb-i-1; j++)
{
if (blk[j].sevaluate_result<blk[j+1].sevaluate_result)
{
temp=blk[j];
blk[j]=blk[j+1];
blk[j+1]=temp;
noswap = false;
}
}
if(noswap)
{
break;
}
}
}
展开全部
double bigness(cft *blk,int blknb)
{
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
改成:
double bigness(cft *blk,int blknb)
{
int iblk;
for ( iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
你之前的声明是语句级的变量,重新声明成函数内部变量即可
{
for (int iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
改成:
double bigness(cft *blk,int blknb)
{
int iblk;
for ( iblk=1; iblk<=blknb; iblk++)
{
blk[iblk].bigness=blk[iblk].l * blk[iblk].w * blk[iblk].h;
}
return blk[iblk].bigness;
}
你之前的声明是语句级的变量,重新声明成函数内部变量即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询