我正在尝试创建一个从用户读取数字的程序,然后告诉用户目前是否是最大的数字。我尝试了几个想法,但没有一个有效(程序运行但不是正确的方法)。非常感谢任何帮助!这是我的代码到目前为止的样子:
int main()
{
double num1 =0,num2=0;
cout<<"Please enter a number: \n";
while (cin>>num1){
cout<<num1<<" is the greatest number so far\n";
cout<<" Enter a new number: \n";
cin>>num2;
if(num2>num1)
cout<<num2<<" is the greatest number so far. \n";
else
cout<<num1<<" is still the greatest number.\n";
}
答案 0 :(得分:1)
每次循环都会读两个数字。一个在while (cin >> num1)
中,然后又在cin >> num2
中。在打印要求输入新号码的消息后,每次只能读取一个号码。
在您将其与任何内容进行比较之前,您还打印了一条消息,指出num1
在循环顶部是最好的。我认为这只是为了输入的第一个数字,所以它应该在循环之外。
当新数字大于目前为止的最大数字时,您需要取代该数字。
学会使用有意义的变量名。很难记住num1
和num2
之间的区别 - greatest
和next
这样的名称可以明确其目的。
int main()
{
double greatest, next;
cout<<"Please enter a number: \n";
cin >> greatest;
cout<< greatest << " is the greatest number so far\n";
while (true){
cout<<" Enter a new number: \n";
cin>>next;
if(next > greatest) {
cout << next << " is the greatest number so far. \n";
greatest = next;
} else {
cout << greatest << " is still the greatest number.\n";
}
}
}
答案 1 :(得分:0)
必须存储最大数量。
int main()
{
double num1 =0,num2=0;
cout<<"Please enter a number: \n";
while (cin>>num1){
cout<<num1<<" is the greatest number so far\n";
cout<<" Enter a new number: \n";
cin>>num2;
if(num2>num1) {
num1 = num2;
cout<<num2<<" is the greatest number so far. \n";
}
else
cout<<num1<<" is still the greatest number.\n";
}
}
答案 2 :(得分:-1)
为值使用变量,到目前为止使用最大的变量。循环可以简化:
int main()
{
double num = 0, greatest = 0;
while(cout << "Please enter a number: \n", cin >> num){
if(num > greatest) {
greatest = num;
cout << num << " is the greatest number so far\n";
}
else
cout << greatest << " is still the greatest number.\n";
}
}