【问题标题】:Finding Maximum and Minimum values in c++ by user input通过用户输入在 C++ 中查找最大值和最小值
【发布时间】:2016-03-03 19:43:26
【问题描述】:

我想知道如何通过用户输入值在 c++ 中找到最大值和最小值,并且用户还设置了 for 循环的限制,例如:

编写一个 C++ 程序,该程序最初从用户那里获取一个整数值作为循环的限制。这意味着循环将执行与用户输入相同的时间。然后循环将整数值作为用户的输入,直到达到循环限制。 您只需要使用一个变量,该变量将用于在循环内重复从用户那里获取输入。这意味着您不允许为此目的使用数组或多个变量。之后,您的程序将计算输入值的总和、它们的平均值、最小值和最大值以及输入这些值的位置。

我写了,但一直停留在最大值和最小值上……这里是

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
using namespace std;

int main(){
int value;
int ivalue;
int sum=0;
int average;
int x,y;


cout << "Enter loop limit : "; cin >> value ;
cout<<endl;
cout<<endl;

for( x=0;x<=value-1;x++){
        cout << "Enter "<<x+1<<" value : "; cin >> ivalue;
        sum=sum+ivalue;
}
   cout<<endl;
   cout<<endl;
   cout << "Sum of entered values : " <<sum <<endl;
   cout << "Average of entered values : "<< sum/value<<endl;

 }

【问题讨论】:

  • 将输入与您当前的最大值进行比较,如果更大,则将其用作新的最大值。
  • 如果你有int maximum 来保存最大值,那么你可以在你的for 循环中使用maximum = x ? std::max(maximum, ivalue) : ivalue;。注意三元条件的使用。请注意,如果 value 为零,maximum 将保持未初始化状态:不要在该实例中读回它。
  • 这意味着你不能使用数组或多个变量来达到这个目的。 -- 哪个目的?是否允许像下面发布的解决方案一样具有最小值和最大值两个变量?

标签: c++ max minimum


【解决方案1】:

您应该将最大值定义为可能的最小值:

int maximum = -INFINITY;

然后在每个值处比较并在必要时设置新的最大值:

if (ivalue > maximum)
    maxumum = ivalue;

至少你会使用相同的逻辑......

【讨论】:

    【解决方案2】:

    为确保输入的任何值都大于您将“max”初始化为的值,您需要将其初始化为可能的最小整数值。

    int max = INT_MIN;
    

    出于同样的原因,您需要做相反的事情。

    int min = INT_MAX;
    

    您还需要跟踪循环的迭代,以便找到输入最大值和最小值时的位置。

    int count = 1;
    

    通过循环的每次迭代,您将递增计数变量。

    count++;
    

    现在您需要两个变量来跟踪最大值和最小值的位置。

    int maxPos = 1;
    int minPos = 1;
    

    我们可以将位置初始化为一个,因为我们知道至少第一个用户输入的值将是我们的新最大值和最小值。

    然后,在您的 for 循环中,您需要测试用户输入的值是否大于当前最大值,如果是,则将该值设置为新的最大值并更新位置。

    if (ivalue > max) {
        max = ivalue;
        maxPos = count;
    }
    

    您还需要测试最小值并在用户输入的值小于当前最小值时分配它,并更新位置。

    if (ivalue < min) {
        min = ivalue;
        minPos = count;
    }
    

    【讨论】:

      【解决方案3】:
      int input;
      int max = 0;
      int min = 0;
      
      cout << "Enter number: ";
      while (input != -1)
      {
          cin >> input;
          if(input != -1)
          {
              if(input > max)
              {
                  max = input;
              }
      
              if(input < min)
              {
                  min = input;
              }
          }
      }
      cout <<"Max: " << max << " Min " << min << endl;
      

      }

      【讨论】:

      • 你应该添加一些关于你的代码做什么的解释。
      猜你喜欢
      • 2016-07-24
      • 2020-07-10
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2012-09-16
      • 2014-07-30
      • 2013-11-12
      • 1970-01-01
      相关资源
      最近更新 更多