Для каждого элемента матрицы найти наибольший элемент из четных из выделенной области.Помогите пожалуйста,программа почему то неправильно создает область,где может быть ошибка?Никаких мыслей уже нет,все что можно перепробовал
| Код | #include <stdio.h> #include <conio.h>
int A[20][20]; int C[100]; int N,M; int k,s; int poisk_max(int);
void vvod_massiva() {int i,j; printf("\n Vvedite kol-vo strok i stolbcov \n"); scanf("%d %d",&N,&M); printf("\n Vvedite matricy: \n"); for(i=0;i<=N;i++) {for(j=0;j<=M;j++) scanf("%d",&A[i][j]); } }
void vivod_massiva() { int i,j; printf("\n Vasha matrica \n"); for(i=0;i<=N;i++) { for(j=0;j<=M;j++) printf("%d ",A[i][j]); printf("\n"); } }
int postroenieoblasti(int x,int y) {
int W; int i,j; int max;
k=1; for(i=x,j=y;j>=0;j--) //i?yiay { C[k]=A[i][j];
k++; }
for(i=x-1,j=y+1;i>=1,j<=M;i--,j++) // aa?oiyy aeaaiiaeu { C[k]=A[i][j]; k++;
} for(i=x+1,j=y+1;i<=N,j<=M; i++,j++) // ie?iyy aeaaiiaeu { C[k]=A[i][j]; k++; } s=k; W=poisk_max(s);
return W;
}
int poisk_max(int s) { int max; for(k=0;k<=s;k++) { printf("%d",C[k]); } for(k=1;k<=s;k++) { if(C[k]%2==0) { max=C[k]; break; } } for(k=1;k<=s;k++) {if(C[k]%2==0 && C[k]>max) max=C[k];} return max; }
int main () { int i,j,a,x,y; vvod_massiva(); vivod_massiva();
printf("| N | i | j | rezultat |\n"); printf("| | | | |\n");
a=1; for(x=0;x<=N;x++) for(y=0;y<=M;y++)
{
A[x][y]=postroenieoblasti(x,y);
printf("|%3d|%3d|%3d|%10d|\n",a,x,y,A[x][y]); a++; }
getch();
}
|
|