Найдите наименьшую из 4 переменных, используя только операторы else-if, C

#c

#c

Вопрос:

Я только начал c не так давно. Я хочу найти наименьшую из 4 переменных, используя только операторы if-else. Пока это то, о чем я мог подумать. Есть ли способ сократить это?

 float lowest;

if (assignment1<assignment2 amp;amp; assignment1<assignment3 amp;amp; assignment1<assignment4)
     assignment1 == lowest;           


else if (assignment2<assignment1 amp;amp; assignment2<assignment3 amp;amp; assignment2<assignment4)
         assignment2 == lowest;



else if (assignment3<assignment1 amp;amp; assignment3<assignment2 amp;amp; assignment3<assignment4)
         assignment3 == lowest;



else 
        assignment4 == lowest;
 

Комментарии:

1. Этот код даже ничего не делает. Я также не уверен, что понимаю ограничения на это — есть ли причина, по которой вам не разрешено использовать другие языковые конструкции, кроме if and else ?

2. определите сокращение. меньше проверок или меньше кода?

3. наименьший = присваиваниеx;

4. Как насчет наименьших 5 переменных? 6 переменных? 10 переменных? 100 переменных? В какой-то момент вы увидите, что становится бессмысленным использовать операторы if-else для подобных вещей.

5. @PaulMcKenzie Вероятно, это задание предназначено для того, чтобы показать им, насколько болезненной была бы жизнь без цикла, поскольку следующий урок покажет, что тогда циклы и попросят повторно реализовать его с помощью циклов. Именно так это обычно делается.

Ответ №1:

Разрешено ли вам выполнять несколько назначений lowest ? Если это так:

 float lowest = assignment1;

if (assignment2 < lowest)
    lowest = assignment2;

if (assignment3 < lowest)
    lowest = assignment3;

if (assignment4 < lowest)
    lowest = assignment4;
 

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