Заменить повторяющиеся в матрице элементы нулями - C (СИ)

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

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

Известно, что в матрице A(n×m) нет нулей. Заменить повторяющиеся в матрице элементы нулями. Помогите пожалуйста. Спасибо.

Решение задачи: «Заменить повторяющиеся в матрице элементы нулями»

textual
Листинг программы
#include <stdio.h>
#define S 5
#define B 5
int main(void)
{
  int i,j=0,v,s;
  int A[S][B]={{2,7,67,45,2},{5,5,5,5,654}, {34,45,22,11,22}, {3,4,5,6,654}, {4,78,65,1,1}};
  int *pt;
  int *pp;
  pt=A[0];         
  v=B*S;
  for(i=1;i<=v;i++)
  {
      pp=pt+1;
      s=*pt;  
     for(j=i+1;j<=v;j++)
     {
        if(s==*pp){*pp=0;*pt=0;}
        pp++;
     }
         pt++;
  } 
   for(i=0;i<S;i++)
   {
       printf("\n");
      for(j=0;j<B;j++)
      {
         printf("%-3d ",A[i][j]);
      }
   }    
  return(0);
}

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

  1. Подключение необходимых библиотек для работы с файлами и математическими операциями.
  2. Определение размеров матрицы S и B.
  3. Создание двумерного массива A размером S x B, заполненного случайными значениями.
  4. Указание на то, что первая строка матрицы будет использоваться как указатель на первый элемент.
  5. Создание указателей pt и pp для работы с элементами матрицы.
  6. Инициализация указателя pt на первый элемент первой строки матрицы A.
  7. Вычисление общего количества элементов в матрице и сохранение этого значения в переменной v.
  8. Внешний цикл for, который проходит по всем элементам матрицы от первого до последнего.
  9. Внутренний цикл for, который проверяет все элементы, начиная с текущего индекса, на равенство текущего элемента с предыдущим.
  10. Если элементы равны, то текущий элемент и предыдущий элемент заменяются на ноль.
  11. Указатель pp увеличивается на 1, чтобы перейти к следующему элементу.
  12. Указатель pt увеличивается на 1, чтобы перейти к следующему элементу.
  13. Внутренний цикл завершается, когда он достигает конца матрицы.
  14. Указатель pt возвращается к началу первой строки матрицы.
  15. Внутренний цикл for, который проходит по всем строкам матрицы.
  16. Внешний цикл for, который проходит по всем элементам строки.
  17. Внутренний цикл for, который выводит каждый элемент матрицы, отцентрировав его и добавив пробелы.
  18. Внутренний цикл завершается, когда он достигает конца строки.
  19. Внешний цикл for завершается, когда он достигает конца матрицы.
  20. Программа возвращает 0, что означает успешное выполнение.

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


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

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

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