Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /*
- Еден елемент се заматува ако се најде аритметичка средина на елементот и
- сите негови соседи.Сосед на еден елемент се сите елементи кои припаѓаат на матрицата и се околу истиот елемент(хоризонтално,вертикално,дијагонално).
- Во датотеката input.txt е
- сместена матрица од реални вроеви(3,n,m<50).
- Во првиот ред се дефинирани бројот на редици и колони н матрицата и во
- секој преостанат ред е внесен еден ред о матрицата(види пример).По читањето на матрицата,од стандарден влез се внесуваат и
- 2 пара координанти на матрицата(ред и колона) кои го репрезентираат горниот-лев и долниот-десен елемент од регионот.Потребно е да
- генерирате нова матрица во која ќе ги заматите сите елементи кои припаѓаат на регионот.Новодбиената матриц,во истиот формат треба да
- се запише во датотеката output.txt.
- */
- int main()
- {
- FILE *inp=fopen("input.txt" , "r");
- int i,j;
- int n,m;
- int x,y;
- int k,l;
- double as=0;
- double sum=0;
- int brEl=0;
- scanf("%d%d",&x,&y);
- scanf("%d%d",&k,&l);
- fscanf(inp,"%d%d",&n,&m);
- double matrica[101][101];
- double matrica2[101][101];
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- fscanf(inp,"%lf",&matrica[i][j]);
- matrica2[i][j]=matrica[i][j];
- }
- }
- for(i=x;i<=k;i++){
- for(j=y;j<=l;j++)
- {
- as=0;
- sum=0;
- brEl=0;
- if(i-1>=0 && j-1>=0)
- {
- sum+=matrica[i-1][j-1];
- brEl++;
- }
- if(i-1>=0)
- {
- sum+=matrica[i-1][j];
- brEl++;
- }
- if(i-1>=0 && j+1<m)
- {
- sum+=matrica[i-1][j+1];
- brEl++;
- }
- if(j-1>=0)
- {
- sum+=matrica[i][j-1];
- brEl++;
- }
- sum+=matrica[i][j];
- brEl++;
- if(j+1<m)
- {
- sum+=matrica[i][j+1];
- brEl++;
- }
- if(i+1<n && j-1>=0)
- {
- sum+=matrica[i+1][j-1];
- brEl++;
- }
- if(i+1<n)
- {
- sum+=matrica[i+1][j];
- brEl++;
- }
- if(i+1<n && j+1<m)
- {
- sum+=matrica[i+1][j+1];
- brEl++;
- }
- as=sum/brEl;
- matrica2[i][j]=as;
- }
- }
- FILE *out=fopen("output.txt" , "w");
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- fprintf(out,"%lf ",matrica2[i][j]);
- }
- fprintf(out,"\n");
- }
- fclose(inp);
- fclose(out);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement