Min max - C (СИ)
Формулировка задачи:
ниче не получается у меня, объясните плзз!? спасибо заранее
#include<stdio.h> #include<math.h> int main(){ int a,b,c,d; int max=0,min=0; int res=0; printf("Vvedite znachenie a,b,c,d cherez probel"); scanf("%d%d%d%d",&a,&b,&c,&d); max=(a>c)?a:c; min=(c<d)?c:d; printf("max=%d\n",max); printf("min=%d\n",min); min=(a<c)?a:c; printf("min=%d\n",min); min=(a<b)?a:b; printf("min=%d\n",min); res=((max(a>c))*(min(c<d))/); printf("res=%d",res); return 0; }
Решение задачи: «Min max»
textual
Листинг программы
#define max(x, y) ( (x) > (y) ? (x) : (y) ) #define min(x, y) ( (x) < (y) ? (x) : (y) ) /* и в надежде, что минимальное из a, b и c - не ноль... */ #define calc(a, b, c, d) ( max((a), (c)) * min((c), (d)) / min(min((a), (b)), (c)) )
Объяснение кода листинга программы
- В данном коде определены три макроса:
max(x, y)
- возвращает максимальное значение из двух чиселx
иy
. Еслиx
большеy
, то возвращаетсяx
, иначе возвращаетсяy
.min(x, y)
- возвращает минимальное значение из двух чиселx
иy
. Еслиx
меньшеy
, то возвращаетсяx
, иначе возвращаетсяy
.calc(a, b, c, d)
- вычисляет значение по формуле:(max(a, c) * min(c, d)) / min(min(a, b), c)
.
- В коде отсутствует объявление переменных
a
,b
,c
,d
, поэтому предполагается, что эти переменные уже были объявлены до этого кода. - Значения переменных
a
,b
,c
,d
передаются в макросcalc
для вычисления значения по формуле. - Предполагается, что в коде, который предшествует этому коду, были объявлены и инициализированы переменные
a
,b
,c
,d
. - Если минимальное из значений
a
,b
,c
равно нулю, то результат вычисленияcalc
будет некорректным.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д