Определить пару матриц с наибольшим количеством чисел "близнецов" - C (СИ)

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

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

Помогите пожалуйста, камрады! Задание звучит так: В массиве из T структур Table, состоящих из двух полей: указатель на имя таблицы и указатель на двумерный массив с целочисленными данными размерами N на M, определить пару матриц с наибольшим количеством чисел "близнецов". Значения T, N и M и данные в структурах вводятся с клавиатуры. "Близнецами" тут называются числа, которые отличны на двоечку. Типа 1 3 5 7 9 и т. д.

Решение задачи: «Определить пару матриц с наибольшим количеством чисел "близнецов"»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
 
typedef struct table {
    char *name;
    int **matr;
} Tables;
 
int main()
{
    int T, N, M;
    int i, j, h;
    Tables *table;
    printf("Enter the T (number of structures):");
     scanf("%d", &T); 
     table = (Tables *)malloc(T * sizeof(Tables));
     printf ("\nEnter the N (the size of the matrix):");
      scanf("%d", &N);
      for (int k = 0; k < T; k++) {
          printf ("\nEnter the name of the %d-th matrix - ", k+1);
          table[k].name=(char *)malloc(10 * sizeof(char));
          scanf("%s", table[k].name);
          printf ("\nEnter the elements of the matrix %s \n",table[k].name);
          table[k].matr=(int **)malloc(N*sizeof(int *));
          for (int i = 0; i < N; i++) { 
              table[k].matr[i]=(int *)malloc(N * sizeof(int));
              for (int j = 0; j < N; j++) { 
                  printf ("%s[%d][%d]= ", table[k].name, i, j);
                  scanf ("%d", &table[k].matr[i][j]);
              } 
          }
      }
      getch();
}

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

В этом коде определен тип структуры table, который содержит имя матрицы (строка символов) и саму матрицу (двумерный массив целых чисел). Затем в основной функции main определены следующие переменные: T - количество структур; N - размер матрицы; M - размер матрицы (не используется, но должна быть объявлена для корректной работы функции scanf); i, j, h - индексы для перемещения по матрице. С помощью функции malloc выделяется память под матрицы и их имена. Затем происходит заполнение матриц с помощью функции scanf. Функция getch используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу. Возможно, следующий шаг в коде должен был быть связан с поиском пар матриц с наибольшим количеством одинаковых чисел (близнецов), но этот шаг отсутствует в предоставленном коде.

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


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

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

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