最小和最大的数字(用户输入-99停止输入数字)

  • 本文关键字:数字 用户 c++
  • 更新时间 :
  • 英文 :


我正在编写一个程序,让用户输入一个数字列表,并查看他们输入的最大和最小的数字是什么。用户可以输入的数字数量只有2个(在他们输入-99(列表结束的标志)之前,它需要是他们想要的任何数量)。我不知道如何重复输入数字的过程,直到他们输入-99。如果有人能帮忙,我将不胜感激。(提醒一下,-99不应该是列表的一部分,它应该找到-99之前的所有数字中最小和最大的数字)。我只能使用循环来解决这个问题。

int main(){
int firstNumber = 0;
int nextNumber = 0;
int greatestNumber = 0;
while (firstNumber != -99 || nextNumber != -99){
    cin >> firstNumber;
    if (firstNumber == -99){
        cout << "No numbers were entered." << endl;
        break;
    }
    greatestNumber = firstNumber;
    cin >> nextNumber;
    if (nextNumber == -99){
        cout << "the greatest number is " << firstNumber << endl;
        cout << "the smallest number is " << firstNumber << endl;
        break;
    }
    if (nextNumber > greatestNumber){
        greatestNumber = nextNumber;
        cout << "the greatest number is " << greatestNumber << endl;
        cout << "the smallest number is " << firstNumber << endl;
    } else {
        cout << "the greatest number is " << greatestNumber << endl;
        cout << "the smallest number is " << nextNumber << endl;
    }
}
system("pause");
return 0;

}

没有firstNumbersecondNumber,只有currentNumber。如果它大于greatestNumber,则将其分配给greatestNumber。然后循环获取新的currentNumber并再次检查。

当用户结束时(除了用户输入-99之外,可以有多种方式发生),结束循环并打印最大的数字。

哦,我建议您初始化greatestNumber为零以外的东西,至少如果您希望用户能够输入负数(但大于-99)。

对于最小的数字,有一个等效的变量smallestNumber,初始化为一个非常大的值(如std::numeric_limits<int>::max()),并对其进行相等检查(但使用小于而不是大于)。


一些伪代码:

int smallest = REALLY_BIG_NUMBER;
int largest = REALLY_SMALL_NUMBER;
int current;
loop while there is input to put in current
{
    if current is your exit condition then exit loop
    if current is larger than largest the reassign largest
    if current is smaller than smallest then reassign smallest
}
print largest and smallest

最新更新