Advertisement
Josif_tepe

Untitled

Jun 11th, 2021
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /*
  4. Еден елемент се заматува ако се најде аритметичка средина на елементот и
  5. сите негови соседи.Сосед на еден елемент се сите елементи кои припаѓаат на матрицата и се околу истиот елемент(хоризонтално,вертикално,дијагонално).
  6. Во датотеката input.txt е
  7. сместена матрица од реални вроеви(3,n,m<50).
  8. Во првиот ред се дефинирани бројот на редици и колони н матрицата и во
  9. секој преостанат ред е внесен еден ред о матрицата(види пример).По читањето на матрицата,од стандарден влез се внесуваат и
  10. 2 пара координанти на матрицата(ред и колона) кои го репрезентираат горниот-лев и долниот-десен елемент од регионот.Потребно е да
  11. генерирате нова матрица во која ќе ги заматите сите елементи кои припаѓаат на регионот.Новодбиената матриц,во истиот формат треба да
  12. се запише во датотеката output.txt.
  13. */
  14. int main()
  15. {
  16.     FILE *inp=fopen("input.txt" , "r");
  17.     int i,j;
  18.     int n,m;
  19.     int x,y;
  20.     int k,l;
  21.     double as=0;
  22.     double sum=0;
  23.     int brEl=0;
  24.  
  25.     scanf("%d%d",&x,&y);
  26.     scanf("%d%d",&k,&l);
  27.  
  28.     fscanf(inp,"%d%d",&n,&m);
  29.  
  30.     double matrica[101][101];
  31.     double matrica2[101][101];
  32.  
  33.     for(i=0;i<n;i++)
  34.     {
  35.         for(j=0;j<m;j++)
  36.         {
  37.             fscanf(inp,"%lf",&matrica[i][j]);
  38.             matrica2[i][j]=matrica[i][j];
  39.         }
  40.     }
  41.  
  42.     for(i=x;i<=k;i++){
  43.  
  44.         for(j=y;j<=l;j++)
  45.         {
  46.             as=0;
  47.             sum=0;
  48.             brEl=0;
  49.             if(i-1>=0 && j-1>=0)
  50.             {
  51.                sum+=matrica[i-1][j-1];
  52.                brEl++;
  53.             }
  54.             if(i-1>=0)
  55.             {
  56.                 sum+=matrica[i-1][j];
  57.                 brEl++;
  58.             }
  59.             if(i-1>=0 && j+1<m)
  60.             {
  61.                 sum+=matrica[i-1][j+1];
  62.                 brEl++;
  63.             }
  64.             if(j-1>=0)
  65.             {
  66.                 sum+=matrica[i][j-1];
  67.                 brEl++;
  68.             }
  69.             sum+=matrica[i][j];
  70.             brEl++;
  71.             if(j+1<m)
  72.             {
  73.                 sum+=matrica[i][j+1];
  74.                 brEl++;
  75.             }
  76.             if(i+1<n && j-1>=0)
  77.             {
  78.                 sum+=matrica[i+1][j-1];
  79.                 brEl++;
  80.             }
  81.             if(i+1<n)
  82.             {
  83.                 sum+=matrica[i+1][j];
  84.                 brEl++;
  85.             }
  86.             if(i+1<n && j+1<m)
  87.             {
  88.                 sum+=matrica[i+1][j+1];
  89.                 brEl++;
  90.             }
  91.  
  92.             as=sum/brEl;
  93.             matrica2[i][j]=as;
  94.         }
  95.     }
  96.  
  97.     FILE *out=fopen("output.txt" , "w");
  98.     for(i=0;i<n;i++)
  99.     {
  100.         for(j=0;j<m;j++)
  101.         {
  102.             fprintf(out,"%lf ",matrica2[i][j]);
  103.         }
  104.         fprintf(out,"\n");
  105.     }
  106.     fclose(inp);
  107.     fclose(out);
  108.     return 0;
  109. }
  110.  
  111.  
  112.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement