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

时间:2012-08-07 19:22:01

标签: c++ arrays conditional-statements

我正在使用C ++开发一个用于练习目的的小应用程序,我实际上在不使用数组的情况下开发了这个算法,但是现在我想使用数组来实现它。该计划应接受四个等级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;
        }

    }   
}

这里的问题是它不应该在控制台上打印错误并且不能继续,只有在满足条件时,如果我在条件的宽限期内输入值,它会打印出“错误”并停止

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

1 个答案:

答案 0 :(得分:0)

这一行

     }else if(grades[2]||grades[3]){

            cout<<"ERROR"<<endl;
            break;

     }

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