Заменить все нулевые элементы на минимальный - 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 обновляется значением текущего элемента.
- Цикл для замены нулевых элементов на минимальный.
- Вывод элементов массива через дефис.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д