在while循环中使用if语句的连续比较

时间:2015-10-10 18:13:32

标签: c++ if-statement while-loop

我应该比较两个连续的整数,i和j,它们是由以空格分隔的整数列表给出的,以wh结尾,如果i小于j,我将j与max和i比较为min 。如果相反,我将j与min和i进行比较。输出应该是我对max,min,i和j的每次比较。此外,列表必须大于2个整数。如果它小于那么我应该输出0.但是程序似乎没有正确执行if语句。

ModelState.AddModelError

}

2 个答案:

答案 0 :(得分:0)

您正在使用i j的while循环(counter == 0)的第一次迭代中覆盖min(和0)。正如您的whilewhile (i != 0),您在一次while次迭代后立即退出。 if应该没问题。

答案 1 :(得分:0)

输入和计数器逻辑可以通过以下方式改进:

#include <iostream>
using namespace std;
int main(){
int i;
int j;
int max = 0;
int min = 0;
int counter = 0;
bool flag = true;  // fix the input logic
while (flag){
    cin >>i;
    cin>>j;

    if(i==0 || j==0){
        flag = false;
        break;
    }else{
        counter ++;
        if(counter < 2 ){
            //your code
        }
        else if(i<j){
            cout<<"i: "<<i<<" j: "<<j;
            j = max;
            i = min;
            // your code
        }
        else if(i>j){
            //your code
        }
    }
}


return 0;
}