Определить наибольшее значение числа

Три толстяка решили поспорить: кто из них самый тяжелый. После взвешивания оказалось, что их масса соответственно M1, M2 и M3 килограмм. Считается, что масса толстяка должна быть не менее 94 и не более 727 килограмм.

Помогите определить массу самого тяжелого из них, либо выяснить, что была допущена ошибка при взвешивании.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Russian");
    int M1, M2, M3;
    scanf("%d%d%d", &M1, &M2, &M3);
    if ((M1 >= 94 && M1 <= 727) && (M2 >= 94 && M2 <= 727) && (M3 >= 94 && M3 <= 727))
    {
        if ((M1 > M2) && (M2 > M3 && (M1 > M3)))
        {
            printf("%d", M1); // первый наибольший
        }
        if ((M2 > M1) && (M3 > M1) && (M2 > M3))
        {
            printf("%d", M2); // второй наибольший
        }
        if ((M3 > M2) && (M2 > M1) && (M3 > M1))
        {
            printf("%d", M3); // третий наибольший
        } 
        if ((M1 == M2) && (M1 == M3) && (M2 == M3))
        {
            printf("%d", M1); // если массы одинаковы
        }
    }
    else
        printf("Error");
}

Где допущена ошибка у меня?


Ответы (2 шт):

Автор решения: EOF

Всё можно сделать проще:

int max(int x, int y)
{
    return (x > y) ? x : y;
}

...

// Где то в `main`
int max_mass = max(max(M1, M2), M3);
→ Ссылка
Автор решения: Igor
if (M1 > M2 && M1 > M3) { printf("%d", M1); } // первый наибольший
else if (...
else { printf("two max or all three values are the same"); }

и так далее.

→ Ссылка