这是我的一些代码的一部分。我得到一个错误未初始化的局部变量'j'使用,我没有看到它。据我所知,它正被使用。有人可以帮忙吗?
float Calculate(Element ElmAry[30], Formula FormAry[30])
{
int i;
int j;
float MoleWT = 0;
float MoleSum = 0;
char e1;
char e2;
char f1;
char f2;
for(i = 0; i < 30; i++) {
f1 = FormAry[j].Element1;
f2 = FormAry[j].ElementA;
e1 = ElmAry[i].eN1;
e2 = ElmAry[i].eN1;
if(e1 == f1 && e2 == f2) {
MoleWT = ElmAry[i].Weight * FormAry[j].Atom;
MoleSum = MoleSum + MoleWT;
j++;
}
}
return MoleSum;
}
答案 0 :(得分:2)
您没有给j
一个值,因此uninitialized variable
错误。
int j;
与为j
赋值0.
你应该这样做:int j = 0;
答案 1 :(得分:2)
错误不是j
正在使用。错误是j
正在使用,但尚未初始化。
我建议您将for
循环更改为:
for(i=0, j=0; i < 30; i++, j++)
我认为这可能是你真正要做的......
答案 2 :(得分:2)
所以你先在行
中使用变量j
f1 = FormAry[j].Element1;
但您之前没有为j
分配任何值,因此“未初始化”。前面提到的j
在您的声明中:
int j;
您需要为其指定一个值,例如0:
int j = 0;
这就是调用“初始化”,因为如果你没有为变量赋值,你应该从该变量得到什么值?