Я пытаюсь найти макс.диагональный элемент квадратной матрицы (в качестве примера рассмотрим матрицу 2x2
; предположим, n = 2
).
Моя логика основана на сравнении [i][i]
с [i + 1][i + 1]
(первым элементом диагонали).матрица по сравнению со следующим диагональным элементом).
Пример ввода:
2
1 2 3 4
Пример вывода:
Сначала мы распечатываем полную матрицу :
1 2
3 4
Затем распечатываем только диагональные элементы:
Диагональные элементы: 1
4
Макс.элемент диагональной матрицы: 4206628
- это то, где я не уверен, почему это портит.Максимальный диагональный элемент в этом случае должен составлять 4
.
#include <stdio.h>
int main()
{
int i, j, n, max = 0;
scanf("%d", &n);
int MAT[n][n];
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
scanf("%d", &MAT[i][j]);
}
}
for (i = 0; i < n; i++){
for (j = 0; j < n; j++){
printf("%d\t", MAT[i][j]);
}
printf("\n");
} printf("\n");
for (i = 0; i < n; i++){
printf("%d\t", MAT[i][i]);
printf("\n");
if (MAT[i][i] > MAT[i + 1][i + 1]){
max = MAT[i][i];
} else max = MAT[i + 1][i + 1];
}
printf("\nMax. diagonal matrix element: %d", max);
return 0;
}