Найти в массиве минимальный элемент не используя условный оператор if - C (СИ)
Формулировка задачи:
Помогите пожалуйста! Задача такова: Найти в массиве минимальный элемент не используя условный оператор if. Насколько я сам понял нужно решить таким способом.
Проблема в функции. Она только сравнивает последние 2 числа в массиве. Долбился целый час но так и не смог преобразовать алгоритм решения.
#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(); }
Решение задачи: «Найти в массиве минимальный элемент не используя условный оператор 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); }
Объяснение кода листинга программы
- Входной параметр функции - массив m типа int, длиной 20 элементов.
- Переменная min инициализируется значением первого элемента массива m.
- В цикле for перебираются все элементы массива m, начиная с индекса 0 и до 19.
- В каждой итерации цикла сравнивается текущее значение min с текущим элементом массива m.
- Если текущее значение min больше текущего элемента массива m, то min присваивается значение текущего элемента массива m.
- Если текущее значение min меньше или равно текущему элементу массива m, то min остается неизменным.
- По завершении цикла for, функция возвращает значение переменной min.
- Возвращаемое значение функции - минимальный элемент массива m.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д