Заменить все нулевые элементы на минимальный - C (СИ)
Формулировка задачи:
Ввести в память машины массив размером N.
Заменить все нулевые элементы на минимальный.
Замену произвести через макрофункцию.
Решение задачи: «Заменить все нулевые элементы на минимальный»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define N 10 #define A(b) m[(b)-1] #define ZAM(a,x,s) for(int i=0; i<(s); ++i)\ { if(0==a(i))a(i)=(x);} int main ( void ) { int m[N]={7, 0, 3, 60, 0, 0, 9, 45, 0, 1}; int i, min; if(N>0)min=A(1); for(i=1; i<=N; ++i) { if(min>A(i)&& A(i)!=0)min=A(i); } ZAM(A, min,N); for(i=1; i<=N; ++i)printf("%d ", A(i)); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими операциями.
- Определение размера массива N.
- Массив представлен как одномерный, значения элементов можно получить через A(b), где b — номер элемента.
- Установка значений для переменных: — m — массив из 10 элементов; — i — счётчик для цикла; — min — переменная для хранения минимального значения.
- Если массив не пустой, то min присваивается первому элементу массива.
- Цикл от 1 до N для прохода по всем элементам массива.
- Если текущий элемент меньше или равен min и не равен 0, то min обновляется значением текущего элемента.
- Цикл для замены нулевых элементов на минимальный.
- Вывод элементов массива через дефис.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д