Поменять местами наибольший элемент на главной и побочной диагоналях с тем, который стоит на пересечении этих диагоналей - 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]
}

Объяснение кода листинга программы

  1. Переменная n содержит размер матрицы.
  2. Переменная max инициализируется значением, которое меньше, чем любой элемент матрицы.
  3. Первый цикл проходит по всем элементам главной диагонали матрицы. Если текущий элемент больше значения переменной max, то значение переменной max присваивается текущему элементу.
  4. Второй цикл проходит по всем элементам побочной диагонали матрицы, начиная с последнего элемента (индекс n). Если текущий элемент больше значения переменной max, то значение переменной max присваивается текущему элементу.
  5. После завершения второго цикла, значение переменной max будет содержать наибольший элемент, который стоит на пересечении главной и побочной диагоналей.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы