如何为数组中的特定空间正确设置条件

How can I properly set a condition for an specific space in array?

本文关键字:空间 设置 条件 数组      更新时间:2023-10-16

我正在开发一个用于C++练习的小应用程序,我实际上成功地在不使用数组的情况下开发了这个算法,但现在我想使用 Array 来做到这一点。该计划应接受四个等级 2 分(共 15 分的实践)(第一和第三值),两个 20 分(第二和第四个值)和一个 30 分。这是我的代码:

int main(int argc, char** argv){
    int grades[5];
    int i; 
    int sum=0;
    for(i=0; i<5; i++){
        cin >> grades[i];
        sum+=grades[i];
        if(grades[0]>15||grades[1]>20){
            cout<<"ERROR"<<endl;
            break;
        }else if(grades[2]||grades[3]){
            cout<<"ERROR"<<endl;
            break;
        }if(grades[4]>30){
            cout <<"ERROR"<<endl;
            break;
        }
    }   
}

这里的问题是,它不应该在控制台上打印错误并中断它继续,只有在满足条件的情况下,此时如果我即使在条件的宽限范围内输入值,它也会打印出"错误"并停止。

并不是真的在寻找解决这个问题的人,我想知道我做错了什么,而没有让别人为我解决它,换句话说,我正在寻找提示/提示。

这里这一行

     }else if(grades[2]||grades[3]){
            cout<<"ERROR"<<endl;
            break;
     }

将导致您的错误随时显示索引 2 或 3 处的元素不为零。您不初始化数组元素,因此在循环开始时,这些值很可能不为零。为了确保它们不是,您可以在开始之前为所有元素分配零。我不确定您的代码试图做什么,但是当用户在 i = 2 处为cin输入除零以外的任何内容并且i = 3您的循环将因错误输出而中断(假设您的 if-else 块中的第一个 if 限制不满足,但如果满足该条件,您的循环无论如何也会退出)