Можно даже проверить находится ли на пересечении максимальное число, вот только я не помню, что будет если разделить нечетный int на четное число, т.е. как произойдет округление я не знаю, если к примеру int = 5 разделить на 2 и в итоге получится 2, то задача корректная , если нет то извиняюсь ошибочная .
| Код | #include <iostream> using namespace std;
#define N 5
void main (void) { int matr [N][N]; int i, j; //Заполняем матрицу for (i=0; i<N; i++) { for (j=0; j<N; j++) { matr[i][j]=rand ()%10; cout << matr[i][j] << " "; }; cout << endl; }; cout << endl; //Ищем максимальный элемент на главной диагонале int max=matr[0][0]; int maxS; bool go=false; for (i=0, j=0; i<N; i++, j++) { if (matr[i][j]>max) { max=matr[i][j]; if(i==N/2) { maxS=max;//На пересечении найден максимальный эллемент} }; }; if(max>maxS){go=true; //Найдено большее число не на пересечении} if(go){ //Если максимальное число не на пересечении cout << max << endl; } else {cout << maxS << endl; //Если макимальное число найдено на пересечении } //На побочной max=matr[0][N-1]; for (i=0, j=N-1; i<N; i++, j--) { if (matr[i][j]>max) { max=matr[i][j]; }; }; cout << max << endl; };
|
|