2016-11-14 6 views
0
#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; 
} 

条件operaterによって4つの数字の最高私はC +で条件演算子を使って、4つの数字の最高を見つけるためにどのように条件付きoperator.BUtを使用して3つの数字の最大を見つける方法を知っています? 誰でも私を助けることができますか?

+3

コードが読めなくなります。このために三項演算子を使用しますが、場合:

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

かを、あなたは並列処理をしたい場合あなたはあなたが持っている割り当ての一部としてそれを使う必要があります。 –

+0

a> b && a> c && a> d:a> b> c && b> d:b:c> d?c:d 良い神々! – Djee

+1

'std :: max(a、std :: max(b、std :: max(c、d))); ' – Arunmu

答えて

0

ベクターに配置し、それらをしてstd::max_elementを使用します。その結果としてif節のセットを使用して、それを拡大し、より良いので

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; 
+4

またはC++ 11で:: std :: max({a、b、c、d}) – Persixty

+0

@DanAllen私たちはこれを持っていることを知っておいてください:) – Arunmu

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

このコードはかなり読めないです。

-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; 
} 
+0

-4、-1、-3、 10。何が印刷されますか?何が印刷されるべきですか? –

+0

また、 'return i == 0? max:GetMax(a + 1、i-i、(a [0]> max?a [0]:max); ' –

+0

負の数を修正しました。 –

1

私には、これを行う方法を学ぶ方法として、私には問題がありません。

私は代わりに、最高の2つの数字を見つける方法の知識を使って、3つの数字のうち最高のものを見つける方法を尋ねるでしょう。

これは中間結果を使用します示しているいくつかのプログラマ-男@として:

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