Поменять местами наибольший элемент на главной и побочной диагоналях с тем, который стоит на пересечении этих диагоналей - C (СИ)
Формулировка задачи:
Задана квадратная матрица (не больше 10х10) вещественных чисел. Найти наибольший элемент среди тех, что расположены на главной и побочной диагоналях и поменять его с элементом, который стоит на пересечении этих диагоналей.
__________________________________________________________________________________
Вот эта программа:
#include <stdio.h> #include <math.h> #include <stdlib.h> void main() { int x=1,y=1,z,i,j,n,i1,j1,max; float a[10][10]; printf("\n Enter the size of your matrix (n<10): "); scanf("%i", &n); printf("Enter the elements of the matrix: \n", i,j); for (i=0; i<n; i++) { for (j=0; j<n; j++) { scanf("%f", &a[i][j]); } } printf("Your matrix:\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++) printf("%4.1f ", a[i][j]); printf("\n"); } i1=0; j1=0; for (i=0; i<n; i++) for (j=0; j<n; j++) if (a[i][j]>a[i1][j1]) { i1=i; j1=j; } { max=a[n/2][n/2]; a[n/2][n/2]=a[i1][j1]; a[i1][j1]=max; } printf("Changed matrix:\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++) printf("%4.1f ", a[i][j]); printf("\n"); } }
Решение задачи: «Поменять местами наибольший элемент на главной и побочной диагоналях с тем, который стоит на пересечении этих диагоналей»
textual
Листинг программы
for(i=0;i<n;i++) { if(a[i][i]>max) max=a[i][i]; } for(i=n;i>0;i--) { if(a[i][i]>max) max=a[i][i] }
Объяснение кода листинга программы
- Переменная
n
содержит размер матрицы. - Переменная
max
инициализируется значением, которое меньше, чем любой элемент матрицы. - Первый цикл проходит по всем элементам главной диагонали матрицы. Если текущий элемент больше значения переменной
max
, то значение переменнойmax
присваивается текущему элементу. - Второй цикл проходит по всем элементам побочной диагонали матрицы, начиная с последнего элемента (индекс
n
). Если текущий элемент больше значения переменнойmax
, то значение переменнойmax
присваивается текущему элементу. - После завершения второго цикла, значение переменной
max
будет содержать наибольший элемент, который стоит на пересечении главной и побочной диагоналей.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д