我正在尝试编写一个代码,用于计算用户想要的测试分数的平均值。但是,当用g ++编译器编译它时,我收到错误:
'else'没有之前的'if'
代码的唯一'else'语句在以下for循环中。这就是我省略其余代码的原因。任何人,请告诉我这里我做错了什么。我似乎无法在任何地方找到答案。提前谢谢!
int i, j;
cout >>"How many tests' scores you want to average; \n";
cin << i;
// Assuming i > 0
int test[i]
for (j = 0; j < i; j++)
{
if (j == 0)
cout <<"Enter the 1st score: \n";
cin >> test[j];
if (j == 1)
cout <<"Enter the 2nd score: \n";
cin >> test[j];
if (j == 2)
cout <<"Enter the 3rd score: \n";
cin >> test[j];
else
cout <<"Enter the "<< (j+1) <<"th score: \n";
cin >> test[j];
}
答案 0 :(得分:2)
你的if
都不是实际的块;你需要身体上的牙套,或者他们只控制执行到下一个分号。
以编译器实际看到控制流的方式缩进它,这就是你所拥有的:
if (j == 2)
cout <<"Enter the 3rd score: \n";
cin >> test[j];
else
cout <<"Enter the "<< (j+1) <<"th score: \n";
cin >> test[j];
当你想要的是:
if (j == 2) {
cout <<"Enter the 3rd score: \n";
cin >> test[j];
} else {
cout <<"Enter the "<< (j+1) <<"th score: \n";
cin >> test[j];
}
您也可能希望前两个if
成为块,并将第二个和第三个if
设为else if
s;否则,除了else
之外,j
块将执行2
的任何值(或者,您使用switch
)。