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;
};
前面声明的部分。
展开
 我来答
cjj796
2013-09-10 · TA获得超过8705个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3399万
展开全部

你的程序不完整,只能帮你修改已知的部分,看后面的注释:

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;
}
}
}
亥凝思3q
2013-09-09 · TA获得超过313个赞
知道小有建树答主
回答量:400
采纳率:14%
帮助的人:171万
展开全部
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;
}
你之前的声明是语句级的变量,重新声明成函数内部变量即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式