Найти максимум три числа в C без использования условного оператора и тернарного оператора - PullRequest
30 голосов
/ 16 августа 2011

Я должен найти максимум три числа, предоставленных пользователем, но с некоторыми ограничениями. Не допускается использование каких-либо условных выражений. Я попытался использовать троичный оператор, как показано ниже.

max=(a>b?a:b)>c?(a>b?a:b):c

Но опять же его использование ограничено троичным оператором. Теперь я не понимаю, как это сделать?

Ответы [ 13 ]

0 голосов
/ 14 февраля 2013
#include "stdafx.h"
#include <iostream>
int main()
{       
        int x,y,z;
        scanf("%d %d %d", &x,&y, &z);
        int max = ((x+y) + abs(x-y)) /2;
        max = ((max+z) + abs(max-z)) /2;
        printf("%d ", max);
        return 0;
}            
0 голосов
/ 01 августа 2012
int compare(int a,int b, intc)
{
    return (a > b ? (a > c ? a : c) : (b > c ? b : c))
}
0 голосов
/ 16 августа 2011
max =  a > b ? ( a > c ? a : c ) : ( b > c ? b : c ) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...