#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个数中的最大数 任何人都可以帮助我吗?
答案 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;
}