比较for循环中的结果c ++

时间:2018-03-18 01:28:47

标签: c++ loops compare

我的任务基本上是询问用户“你要输入多少个号码”,然后如果用户输入2号码,则说明哪个号码最高。我遇到的问题是比较这些数字,因为它们处于循环中。

cout<<"how many #s do you want to enter?"
cin>>number;
for(int i=1; i<=number; i++){
    cout<<"Input number: ";
}
if ( **first number** > **second number**)
    cout<<"First number is bigger";
else 
    cout<<"Second number is bigger";

是否可以比较导致循环的数字?如果没有,是否有一种简单的方法来执行与此相似的过程?

2 个答案:

答案 0 :(得分:1)

你的问题不是很清楚,但我猜你想要一个返回用户输入的最大数字的代码。正如有人在评论中建议的那样,您可以跟踪每次迭代中的最大值:

#include <iostream>
using namespace std;
int main() {
    int how_many;
    cout << "How many #s do you want to enter?" << endl;
    cin >> how_many;
    int max_so_far = 42; // Ha
    for (int i = 0; i < how_many; i++) {
        int input;
        cout<<"Input number: ";
        cin >> input;
        if (i == 0 ||  input>max_so_far) {
            // if it's the first number or it's greater than max_so_far
            max_so_far = input;
        }
    }
    cout << "The biggest number was " << max_so_far << endl;
    return 0;
}

请注意,变量'max_so_far'在第一次迭代中没有任何重要意义(尚未看到数字)。您可以像我一样检查它是否是第一次迭代,或者您可以将'max_so_far'初始化为负无穷大(您可以在该类型上表示的最低数字,在这种情况下为'int')。

答案 1 :(得分:0)

首先,你的比较发生在for循环之外;你应该在循环中移动它来比较所有的数字。

其次,您甚至没有保存用户输入。例如,您想要创建变量max并将其设置为零。然后,在for循环中,将每个输入值与max中的值进行比较,如果它更大,则将max设置为该值。

要回答你的问题,是的,你可以比较导致循环的循环或循环循环中的数字。