我是C ++的新手,请耐心等待。我知道这是一个非常初学的问题。 我应该让用户输入一个数字。例:4。这是我们将阅读的数字,并找到最大的数字。我的程序允许用户输入一个数字,然后列出4个整数。当我打印出最大的数字时,它不是最大的数字。如果有人能解释我做错了什么,那将非常感激!
#include <iostream>
using namespace std;
int main ()
{
float largest;
float max_input;
float total = 0;
float input;
myDefault:
cout << "Enter a positive number to start: ";
cin >> max_input;
if (max_input >= 0)
{
total++;
do {
cout << "Enter integer: ";
cin >> largest;
if (largest >= 0)
{
total++;
if (input > largest)
{
input = largest;
}
}
}while (total <= max_input);
cout << "\nThe largest number you entered is: " << largest << ".\n\n";
}
else
{
cout << "Error. Enter a Positive number to start. \n";
goto myDefault;
}
return (0);
}
答案 0 :(得分:4)
您不断使用新输入覆盖largest
的值,其中变量input
应该是用于此的变量if (input > largest)
。
您检查input
,然后将largest
替换为input
的值,这完全没有意义。
您应该阅读largest
,然后将input
的值替换为新largest
,以防它更大。
您还应该初始化变量FLT_MIN
,这样它就不会以一些甚至不属于输入的随机内存垃圾值开始。例如,您可以将其作为if (largest >= 0)
开始,以确保它将被第一个输入值覆盖。
仅仅if ([[GPPSignIn sharedInstance] authentication]) {
// handle signIn succcess case
} else {
[[GPPSignIn sharedInstance] signOut];
}
做决定也没有意义,这个条件只会破坏代码。
此外,您应该正确缩进代码以便于阅读。现在的方式是很难分辨出每个代码块的开始和结束位置,这应该是你可以通过浏览代码来确定的,这个混乱使得调试成为一项非常困难的任务。
答案 1 :(得分:1)
尝试类似:
#include <iostream>
using namespace std;
int main ()
{
float largest = 0;
float max_input;
float total = 0;
float input;
myDefault:
cout << "Enter a positive number to start: ";
cin >> max_input;
if (max_input >= 0)
{
total++;
do {
cout << "Enter integer: ";
cin >> input;
if (input >= 0)
{
total++;
if (input > largest)
{
largest = input;
}
}
} while (total <= max_input);
cout << "\nThe largest number you entered is: " << largest << ".\n\n";
}
else
{
cout << "Error. Enter a Positive number to start. \n";
goto myDefault;
}
return (0);
}
您要在input
中存储largest
,检查下一个用户输入是否大于最大值。
答案 2 :(得分:0)
您有一个名为input
的变量,但当您接收输入时,您使用的是largest
变量。尝试成为
cin >> input;
以便正确存储输入。
if (input > largest)
{
input = largest;
}
这看起来倒退了,我认为您希望将largest
指定为input
,而不是相反。
答案 3 :(得分:0)
你唯一的改变是
float largest;
float max_input;
float total = 0;
float input;
要
float largest=0;
float max_input=0;
float total = 0;
float input=0;
和
if (input > largest)
要
if (input < largest)
和
cout << "\nThe largest number you entered is: " << largest << ".\n\n";
至
cout << "\nThe largest number you entered is: " << input << ".\n\n";
最终代码将是,
#include <iostream>
using namespace std;
int main ()
{
float largest=0;
float max_input;
float total = 0;
float input=0;
myDefault:
cout << "Enter a positive number to start: ";
cin >> max_input;
if (max_input >= 0)
{
total++;
do {
cout << "Enter integer: ";
cin >> largest;
if (largest >= 0)
{
total++;
if (input < largest)
{
input = largest;
}
}
}while (total <= max_input);
cout << "\nThe largest number you entered is: " << input << ".\n\n";
}
else
{
cout << "Error. Enter a Positive number to start. \n";
goto myDefault;
}
return (0);
}