Заменить все нулевые элементы на минимальный - C (СИ)

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

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

Ввести в память машины массив размером N. Заменить все нулевые элементы на минимальный. Замену произвести через макрофункцию.

Решение задачи: «Заменить все нулевые элементы на минимальный»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 10
  4. #define A(b) m[(b)-1]
  5. #define ZAM(a,x,s) for(int i=0; i<(s); ++i)\
  6.                 { if(0==a(i))a(i)=(x);}
  7. int main ( void )
  8. {
  9. int m[N]={7, 0, 3, 60, 0, 0, 9, 45, 0, 1};
  10.     int i, min;
  11.     if(N>0)min=A(1);
  12.     for(i=1; i<=N; ++i)
  13.     {
  14.         if(min>A(i)&& A(i)!=0)min=A(i);
  15.     }
  16.     ZAM(A, min,N);
  17.     for(i=1; i<=N; ++i)printf("%d ", A(i));
  18.     return 0;
  19. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы