Advertisement
dllbridge

Untitled

May 16th, 2023
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.88 KB | None | 0 0
  1.  
  2.  
  3.  
  4. #include  <stdio.h>
  5. #include <stdlib.h>
  6. #include <locale.h>
  7.  
  8.  
  9. int     M,   //  Кол-во строк  
  10.         N;   //  ... столбцов
  11.  
  12. int   *pA,   //  Указатель на первый элемент матрицы "A"
  13.       *pB;   //  Указатель на первый элемент матрицы "B"
  14.  
  15.  
  16. void initMatrix();
  17.  
  18. void Show_Mtrx(int *p);
  19.  
  20. int checkMatrx();    //  Вернёт кол-во совпадающих по индексам и по значению элементов.
  21.  
  22.  
  23. //////////////////////////////////////////////////////////////
  24. int main()                                                  //
  25. {
  26.    
  27.     setlocale(LC_ALL, "RUS");
  28.     printf("Введите размер матрицы M строк и N столбцов: "); scanf("%d%d", &M, &N); printf("\n");
  29.    
  30.     //M = 3; N = 5;
  31.    
  32.     int nSize = N * M * sizeof(int);                        //  Размер каждой матрицы в байтах
  33.    
  34.     pA = (int*)malloc(nSize);  
  35.     pB = (int*)malloc(nSize);
  36.        
  37.     initMatrix();                                           //  Проинициализируем обе матрицы A и B
  38.    
  39.     printf("\t\t\tВид матрицы A:\n"); Show_Mtrx(pA);  
  40.     printf("\t\t\tВид матрицы B:\n"); Show_Mtrx(pB);    
  41.     printf("Совпадения найдены в следующих элементах:\n");
  42.    
  43.     printf("Количество совпадений = %3d\n", checkMatrx() );
  44.    
  45.     free(pA);
  46.     free(pB);    
  47. }
  48.  
  49.  
  50.  
  51. //////////////////////////////////////////////////////////////
  52. int checkMatrx()                                            //
  53. {
  54.    
  55.     int nCounter = 0;
  56.    
  57.     for(int i = 0; i < M; i++)          // строки
  58.     {
  59.         for(int j = 0; j < N; j++)
  60.         {
  61.             if( pA[i*N+j] == pB[i*N+j])
  62.             {
  63.                 nCounter ++;
  64.                
  65.                 printf("A[%2d][%2d] = B[%2d][%2d] = %3d\n", i, j, i, j, pA[i*N+j] );
  66.             }
  67.         }
  68.     }  
  69.    
  70.     printf("- - - - - - - - - - - - - -\n");
  71.    
  72. return  nCounter;
  73. }
  74.  
  75.  
  76.  
  77.  
  78. //////////////////////////////////////////////////////////////
  79. void initMatrix()                                           //  
  80. {
  81.    
  82.     int n = 1;
  83.      
  84.     for(int i = 0; i < M; i++)
  85.     {
  86.         for(int j = 0; j < N; j++)
  87.         {
  88.            
  89.             pA[i*N + j] = n++;
  90.         }
  91.     }  
  92.    
  93.     n = 1;
  94.    
  95.     for(int i = 0; i < N; i++)
  96.     {
  97.         for(int j = 0; j < M; j++)
  98.         {
  99.            
  100.             pB[j*N + i] = n++;
  101.         }
  102.     }    
  103. }
  104.  
  105.  
  106. //////////////////////////////////////////////////////////////
  107. void Show_Mtrx(int *p)                                      //
  108. {
  109.  
  110.     for(int i = 0; i < M; i++)       // строки
  111.     {
  112.         for(int j = 0; j < N; j++)
  113.         {
  114.            
  115.             printf("%3d", p[i*N + j]);
  116.         }   printf("\n");
  117.     }       printf("\n");                           // printf("\t\t\t\t- - - - - -\n");
  118. }
  119.  
  120.  
  121.  
  122.  
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement