Crazy

Regioni matrica [C]

Nov 24th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. #include <stdio.h>
  2. int mat[100][100],res[100][100];
  3. int r;
  4.  
  5. void region1(int i,int j)
  6. {
  7.     int sum=0,k,red=0,a,b;
  8.     a=i; b=j;
  9.     while(i<=j){
  10.         for(k=i;k<=j;k++){
  11.             sum+=mat[red][k];
  12.         }
  13.         red++;
  14.         i++;
  15.         j--;
  16.     }
  17.     i=a; j=b; red=0;
  18.     while(i<=j){
  19.         for(k=i;k<=j;k++){
  20.             res[red][k] = sum - mat[red][k];
  21.         }
  22.         red++;
  23.         i++;
  24.         j--;
  25.     }
  26.  
  27.  
  28. }
  29.  
  30. void region2(int i,int j)
  31. {
  32.     int sum=0,k,red=r-1,a,b;
  33.     a=i; b=j;
  34.     while(i<=j){
  35.         for(k=i;k<=j;k++){
  36.             sum+=mat[k][red];
  37.         }
  38.         red--;
  39.         i++;
  40.         j--;
  41.     }
  42.     i=a; j=b; red=r-1;
  43.      while(i<=j){
  44.         for(k=i;k<=j;k++){
  45.             res[k][red] = sum - mat[k][red];
  46.         }
  47.         red--;
  48.         i++;
  49.         j--;
  50.     }
  51.  
  52. }
  53. void region3(int i,int j)
  54. {
  55.     int sum=0,k,red=0,a,b;
  56.     a=i; b=j;
  57.     while(i<=j){
  58.         for(k=i;k<=j;k++){
  59.             sum+=mat[k][red];
  60.         }
  61.         red++;
  62.         i++;
  63.         j--;
  64.     }
  65.     i=a; j=b; red=0;
  66.      while(i<=j){
  67.         for(k=i;k<=j;k++){
  68.            res[k][red]= sum - mat[k][red];
  69.         }
  70.         red++;
  71.         i++;
  72.         j--;
  73.     }
  74.  
  75. }
  76. void region4(int i,int j)
  77. {
  78.     int sum=0,k,red=r-1,a,b;
  79.     a=i; b=j;
  80.     while(i<=j){
  81.         for(k=i;k<=j;k++){
  82.             sum+=mat[red][k];
  83.         }
  84.         red--;
  85.         i++;
  86.         j--;
  87.     }
  88.     i=a; j=b; red=r-1;
  89.      while(i<=j){
  90.         for(k=i;k<=j;k++){
  91.             res[red][k] = sum - mat[red][k];
  92.         }
  93.         red--;
  94.         i++;
  95.         j--;
  96.     }
  97.  
  98. }
  99.  
  100. int main(){
  101.     int i,j,zbir,r1,r2,r3,r4,k;
  102.     scanf("%d",&r);
  103.  
  104.     for(i=0;i<r;i++)
  105.         for(j=0;j<r;j++)
  106.             {
  107.                 scanf("%d",&mat[i][j]);
  108.                 res[i][j]=0;
  109.             }
  110.     k=r-1;
  111.  
  112.  
  113.  
  114.     region1(1,r-2);
  115.     region2(1,r-2);
  116.     region3(1,r-2);
  117.     region4(1,r-2);
  118.  
  119.  for(i=0;i<r;i++){ // dijagonalite
  120.         for(j=0;j<r;j++){
  121.             if(i==j) mat[i][j]=0;
  122.             if(j==k) mat[i][j]=0;
  123.         }
  124.         k--;
  125.     }
  126.  
  127.    for(i=0;i<r;i++){
  128.         for(j=0;j<r;j++){
  129.             printf("%d ",res[i][j]);
  130.         }
  131.         printf("\n");
  132.     }
  133.  
  134.  
  135. return 0;
  136. }
Add Comment
Please, Sign In to add comment