Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. void unos_m(int** a, int n)
  6. {
  7.      int i,j;
  8.      for(i=0;i<n;i++){
  9.       *(a+i)=(int*)malloc(n*sizeof(int));
  10.       for(j=0;j<n;j++)
  11.            scanf("%d",&a[i][j]);
  12.      }
  13. }
  14.  
  15. void ispis_m(int** a, int n, int m)
  16. {
  17.      int i,j;
  18.      printf("Ispis matrice:\n");
  19.      for(i=0;i<n;i++){
  20.       for(j=0;j<m;j++)
  21.            printf("%4d",a[i][j]);
  22.       printf("\n");
  23.      }
  24. }
  25.  
  26. int max_m(int** a, int n)
  27. {
  28.      int i,j,max=a[0][0];
  29.      for(i=0;i<n;i++)
  30.       for(j=0;j<n;j++)
  31.            if(a[i][j]>max)
  32.             max=a[i][j];
  33.      return max;
  34. }
  35.  
  36. int provera_polja(int** a, int** b, int n, int m)
  37. {
  38.      int i, j, maxa, maxb;
  39.    
  40.      maxa= max_m(a, n);
  41.      maxb= max_m(b, m);
  42.    
  43.      for(i=0;i<n;i++)
  44.       for(j=0;j<n;j++)
  45.            if(a[i][j]==maxa){
  46.             if(b[i][j]==maxb)
  47.              return 1;
  48.             else
  49.              return 0;  
  50.            }
  51. }
  52.  
  53. void zamena_sa_nulom(int** a, int n){
  54.      int i,j, i1, maxa;
  55.    
  56.      maxa= max_m(a, n);
  57.    
  58.      for(i=0;i<n;i++)
  59.       for(j=0;j<n;j++)
  60.            if(a[i][j]==maxa)
  61.             for(i1=0;i1<n;i1++){
  62.              a[i][i1] = 0;
  63.              a[i1][j] = 0;
  64.             }
  65. }
  66.  
  67. void brisanje(int** a, int n){
  68.      int i, j, maxa, **mat, i1, j1;    
  69.    
  70.      maxa= max_m(a, n);
  71.      
  72.      for(i=0;i<n;i++)
  73.       for(j=0;j<n;j++)
  74.            if(a[i][j]==maxa){
  75.             i1=i+1;
  76.             j1=j+1;    
  77.            }
  78.  
  79.      mat=(int**)malloc(i1*sizeof(int*));
  80.      for(i=0;i<i1;i++)
  81.      {
  82.       *(mat+i)=(int*)malloc(j1*sizeof(int));
  83.       for(j=0;j<j1;j++)
  84.            mat[i][j]=a[i][j];
  85.      }
  86.      
  87.      ispis_m(mat,i1,j1);
  88. }
  89.  
  90. int main(){
  91.      int dim1, dim2, **mat1,**mat2;
  92.    
  93.      printf("Unesite dimenziju prve matrice: ");
  94.      scanf("%d",&dim1);
  95.      mat1=(int**)malloc(dim1*sizeof(int*));
  96.      printf("Unesite prvu matricu:\n");
  97.      unos_m(mat1, dim1);
  98.    
  99.      printf("Unesite dimenziju druge matrice: ");
  100.      scanf("%d",&dim2);
  101.      mat2=(int**)malloc(dim2*sizeof(int*));
  102.      printf("Unesite drugu matricu:\n");
  103.      unos_m(mat2, dim2);
  104.    
  105.      ispis_m(mat1, dim1, dim1);
  106.      ispis_m(mat2, dim2, dim2);
  107.    
  108.      if(provera_polja(mat1,mat2,dim1,dim2)==1)
  109.      {
  110.       printf("\n\t\tIzmenjene matrice:\n");
  111.       zamena_sa_nulom(mat1, dim1);
  112.       zamena_sa_nulom(mat2, dim2);
  113.       ispis_m(mat1, dim1, dim1);
  114.       ispis_m(mat2, dim2, dim2);
  115.      }
  116.      else
  117.      {
  118.       printf("\n\t\tIzmenjene matrice:\n");
  119.       brisanje(mat1,dim1);
  120.       brisanje(mat2,dim2);
  121.      }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement