条件操作符中最多的4个数字

时间:2016-11-14 07:03:01

标签: c++ conditional-operator highest

 #include <iostream>

using namespace std;

int main()
{   int a,b,c,Highest;
     cout<<"Enter three numbers:";
     cin>>a>>b>>c;
       Highest=(a>b&&a>c?a:b>c?b:c);
       cout<<"Highest is:"<<Highest;

    return 0;
}

我知道如何通过使用条件运算符找出3个数中的最大数.BUt如何通过在c +中使用条件运算符找出4个数中的最大数 任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

对我而言,这个问题并不是很好,作为一种学习如何做到这一点的方法。

我会问如何找到三个数字中最高的 - 使用如何找到两个数字中最高的数据的知识,然后在此基础上进行构建。

As @ Some-programmer-dude表示这将使用中间结果:

  int highest = a>b ? a : b;
  highest = highest>c ? highest : c;
  highest = highest>d ? highest : d;

或者如果你想要并行:

int hFirstPart = a>b ? a : b;
int hSecondPart = c>d ? c : d;
int highest = hFirstPart>hSecondPart? hFirstPart : hSecondPart;

答案 1 :(得分:0)

将它们放入矢量中并使用std::max_element

std::vector<int> vec;
int tmp;
for(int i = 0; i < 3; ++i)
{
    std::cin >> tmp;
    vec.push_back(tmp);
}
int max = *std::max_element(vec.begin(), vec.end());
std::cout << max << std::endl;

答案 2 :(得分:0)

 Highest=(a>b&&a>c&&a>d?a:b>c&&b>d?b:c>d&c:d);

此代码非常难以理解,因此最好使用一组后续if子句进行扩展。

答案 3 :(得分:-3)

下面的代码适用于任意数量的元素,只需用所需数量的元素替换SIZE。

#include <iostream>

using namespace std;

#define SIZE 4

int GetMax(int[], int, int, int);

int main()
{

   int a[SIZE];
   int i=0;

   while(i < SIZE)
   {
       cout << "Enter input " << i+1 << " : ";
       cin >> a[i++];
   }

   cout << "Highest = " << GetMax(a, 0, SIZE, a[0]) << endl;

   return 0;
}

int GetMax(int a[], int i, int n, int max)
{
    return ( i < n-1) ? GetMax(a, i+1, n, (a[i] > max ? a[i] : max)) :  a[i] > max ? a[i] : max;
}