Заменить все нулевые элементы на минимальный - 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;
}

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

  1. Подключение необходимых библиотек для работы с файлами и математическими операциями.
  2. Определение размера массива N.
  3. Массив представлен как одномерный, значения элементов можно получить через A(b), где b — номер элемента.
  4. Установка значений для переменных: — m — массив из 10 элементов; — i — счётчик для цикла; — min — переменная для хранения минимального значения.
  5. Если массив не пустой, то min присваивается первому элементу массива.
  6. Цикл от 1 до N для прохода по всем элементам массива.
  7. Если текущий элемент меньше или равен min и не равен 0, то min обновляется значением текущего элемента.
  8. Цикл для замены нулевых элементов на минимальный.
  9. Вывод элементов массива через дефис.
  10. Конец программы.

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


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

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

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