public class Solution {
public static int min(int a, int b, int c) {
//напишите тут ваш код
int d = a;
int e = b;
int f = c;
int m;
if (d <= e)
m = d;
else
if (e <= f)
m = e;
else
m = f;
return m;
}
public static void main(String[] args) throws Exception {
System.out.println(min(1, 2, 3));
System.out.println(min(-1, -2, -3));
System.out.println(min(3, 5, 3));
System.out.println(min(5, 5, 10));
}
}
Виктор
15 уровень
Что не так?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2092671
31 мая 2019, 02:48
Создавать дубликаты переменных действительно ,лишнее ,так как они и так есть.Я решил на основании того о чем знал , а именно создал две переменные(например m1 и m2) в которые заносил результаты сравнений
if(a < b)
m1 = a;
else
m1 = b;
и так далее. Пробуйте удачи.
0
3RSH
30 мая 2019, 19:39
В переменных d, e, f и m нет никакой необходимости, можно использовать только a, b и c. И код будет читаться лучше, и программа быстрей выполняться. :)
0
3RSH
30 мая 2019, 19:36
У тебя сначала происходит сравнение первых двух чисел, без учёта третьей, и сразу возвращается значение наименьшей из них. А если третье число меньше первого, и меньше второго, то то программа это проигнорирует, и сравнит только первые два числа, и сделает выбор только среди них.
Необходимо проводить одновременное сравнение каждого числа по отношению к двум остальным. Я использовал логическое умножение (логическое "И", на JAVA пишется "&&"), например:
if (a <= b && a <= c) return a;
if (b <= a && b <= c) return b;
if (c <= a && c <= b) return c;
+4