我的任务基本上是询问用户“你要输入多少个号码”,然后如果用户输入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";
是否可以比较导致循环的数字?如果没有,是否有一种简单的方法来执行与此相似的过程?
答案 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
设置为该值。
要回答你的问题,是的,你可以比较导致循环的循环或循环在循环中的数字。