Java

Помогите с задачей !

public class sdsdsdsd {

public static int min(int a, int b, int c)
{

int t = a ;
int d = b ;
int j = c ;
int gg;
if (t<d)
gg = t;
else
gg = 0;
if (t<j)
gg = t;
else
gg = 0;
if (d<j)
gg = d;
else
gg = 0;
if (j<d)
gg = j;
else
gg = d;

return gg;

//напишите тут ваш код
}

public static void main(String[] args) throws Exception
{

System.out.println( min(12,33,44) );
System.out.println( min(-1,-2,-3) );
System.out.println( min(-10,-20,60) );
System.out.println( min(-40,-50,4) );

}

}
КАК БЫ Я НЕ МЕНЯЛ КОД ТО В ВЫВОДЕ КАКОЕ-ТО ОДНО ЧИСЛО ВЫВОДИТ НЕ ПРАВИЛЬНО, А ОСТАЛЬНЫЕ ПРАВИЛЬНО, ЧТО ДЕЛАТЬ ОБЪЯСНИТЕ )
Зачем нужен min от трёх аргументов? Всегда достаточно двух: min(a, b, c) = min(a, min(b, c)).

Но если так хочется от трёх, то:

public static int min(int a, int b, int c) {
int t = a < b? a : b;
return с < t? с : t;
}
Nikitos Kozyrev
Nikitos Kozyrev
56 974
Лучший ответ
Михаил Фролов >a < b? a : b;
как называется такое условие?

если я правильно понял, то:
если a < b, то t = a
если a > b, то t = b
Зачем так сложно писать?
Ab
Abd1K
15 046
Вы что-то считаете, я даже сразу не скажу что, но, если заменить временные переменные на a, b и с, то получится
if (a<b) gg = a; else gg = 0;
if (a<c) gg = a; else gg = 0;
if (b<c) gg = b; else gg = 0;
if (c<b) gg = c; else gg = b;

Заметили, что последнее условие устанавливает gg независимо от первых трёх?
То есть, от значения параметра а результат ВАШЕГО метода min не зависит.
Скажу что вы считаете, это минимум b и с.

ЗЫ
Предположу, что что вы хотели посчитать минимум из трёх чисел.
Для этого надо сначала посчитать min(a, b), а потом сравнить его с c:
int m = (a < b)?a: b;
return (m < c)?m: c;
ммм чуток не успел...
class Main {
public static void main(String[] args){
System.out.println(min(12,33,44));
System.out.println(min(-1,-2,-3));
System.out.println(min(-10,-20,60));
System.out.println(min(-40,-50,4));
}

static int min(int a, int b, int c) {
int min = a;
if (min > b) min = b;
if (min > c) min = c;
return min;
}
}