Найти в массиве минимальный элемент не используя условный оператор if - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста! Задача такова: Найти в массиве минимальный элемент не используя условный оператор if. Насколько я сам понял нужно решить таким способом.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int i;
 
int MinElement(int m[20])
{
  int min;
  for(i=0; i<19; i++)
     min = (m[i] < m[i+1]?m[i]:m[i+1]);
  return(min);
}
 
void main(void)
{
  int MyArray[20];
  srand(time(NULL));
  clrscr();
  for(i=0; i<20; i++)
    MyArray[i] = 1+random(100);
  printf("Array:");
  for(i=0; i<20; i++)
    printf(" %d",MyArray[i]);
  puts("");
  printf("Min. Element of Array = %d",MinElement(MyArray));
  getch();
}
Проблема в функции. Она только сравнивает последние 2 числа в массиве. Долбился целый час но так и не смог преобразовать алгоритм решения.

Решение задачи: «Найти в массиве минимальный элемент не используя условный оператор if»

textual
Листинг программы
int MinElement(int m[20])
{
  int min = m[0];
  for(i=0; i<20; i++)
     min = (min > m[i] ? m[i] : min);
  return(min);
}

Объяснение кода листинга программы

  1. Входной параметр функции - массив m типа int, длиной 20 элементов.
  2. Переменная min инициализируется значением первого элемента массива m.
  3. В цикле for перебираются все элементы массива m, начиная с индекса 0 и до 19.
  4. В каждой итерации цикла сравнивается текущее значение min с текущим элементом массива m.
  5. Если текущее значение min больше текущего элемента массива m, то min присваивается значение текущего элемента массива m.
  6. Если текущее значение min меньше или равно текущему элементу массива m, то min остается неизменным.
  7. По завершении цикла for, функция возвращает значение переменной min.
  8. Возвращаемое значение функции - минимальный элемент массива m.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы