首页 > 解决方案 > 如何在不使用数组的情况下返回输入的最小值

问题描述

请注意,这是一个家庭作业问题,我不是在寻找答案,而是帮助我解决问题的提示。该程序的目标是在不使用数组的情况下列出输入的最小和最大数字。输入 0 应输入退出程序,但不应记录为“低”值。我试图在 if 语句中将低设置为不等于零,但无论如何它都会返回 0。

#include <iostream>
using namespace std;
int main(){
    cout<<"Enter a Number: ";
    double input;
    int max = -100000000;
    int low = 100000000;
    cin>>input;
    for(int i = 0; i = input; i++){
    cout<<"Enter Another Number:";
    cin>>input;
    if(input > max != 0) { max = input; }
    else if (input < low != 0) { low = input; }
    }
    cout<<"MAX NUMBER WAS: "<< max << endl;
    cout<<"LOWEST NUMBER WAS: "<< low;
return 0;
}

标签: c++

解决方案


因为我没有要点给你提示意见,所以我将在这里添加提示:因此,获得任何问题的正确解决方案的最简单方法是将其可视化或在纸上编写简单示例,例如:用户输入:

1,4,6,10,0

想想如果有人以相同的顺序显示这些数字,您如何找到最小和最大的数字?你会怎么做?所以,一开始你看到第一个数字1是最小和最大的,因为你没有更多的输入,对吧?

最小值 = 1 和最大值 = 1

那个按给定顺序向您显示数字的人现在向您显示第二个数字4您此时将做什么?您肯定会比较当前阶段的输入是否小于min(或1),如果输入小于min ,则将输入值保存到min或max相同的值:如果输入大于最大值您将输入值保存到最大值(或者在这种情况下,因为我们的第二个数字是4并且输入的值大于最大值)所以

最大值4最小值1

. 您对所有输入的数字重复相同的操作,或者如果输入-1 ,则可以进行while 循环,循环将结束。我想我给了你你需要做什么的想法,并用我的提示帮助你。抱歉,因为我在之前的答案中给了你源代码,我现在编辑了它。:)


推荐阅读