5dop
#include <iostream> #include <cctype> #include <cstring> #include <iomanip> using namespace std; bool validIndex(int i, int j, int m, int n) { return (i >= 0 && i < m && j >= 0 && j < n); } float averageOfNeighbours(float* arr, int i, int j, int m, int n) { float sum = 0; float count = 0; for(int k = i-1; k <= i+1; k++) { for(int l = j-1; l <= j+1; l++) { if(validIndex(k, l, m, n)) { sum += arr[k*n+l]; count++; } } } return sum / count; } int main() { int m,n; cin>>m>>n; float arr[m][n]; float newarr[m][n]; for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { cin>>arr[i][j]; newarr[i][j] = arr[i][j]; } } int x1,x2,y1,y2; cin>>x1>>y1>>x2>>y2; for(int i = x1; i <= min(x2,m-1); i++) { for(int j = y1; j <= min(y2,n-1); j++) { newarr[i][j] = averageOfNeighbours(&arr[0][0],i,j,m,n); } } for(int i = 0;i<m;i++) { for(int j = 0;j<n;j++) { cout<<newarr[i][j]<<" "; } cout<<endl; } }
Leave a Comment