В действительной квадратной матрице порядка k найти наибольший по модулю элемент - C (СИ)

Узнай цену своей работы

Формулировка задачи:

1

.В данной действительной квадратной матрице порядка k найти наибольший по модулю элемент. Получить квадратную матрицу порядка k-1 путем отбрасывания в исходной матрице строки и столбца, на пересечении которых расположен элемент с найденным значением.

2

.Дана действительная квадратная матрица порядка k. Преобразовать матрицу по следующему правилу: строку с номером k сделать столбцом с номером k, а столбец с номером k — строкой с номером k.

Решение задачи: «В действительной квадратной матрице порядка k найти наибольший по модулю элемент»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define n 5
  4.  
  5. int main()
  6. {
  7. double mas[n][n]={{1.0,2.0,3.0,4.0,5.0},{6.0,7.0,8.0,9.0,10.0},{1.0,13.0,2.0,5.0,4.0},{-7.0,0.0,5.0,8.0,9.0},
  8.  
  9. {1.0,2.0,3.0,4.0,5.0}} ;
  10. double mas2[n-1][n-1];
  11. double max;
  12. int i,j,max_row,max_col,k;
  13.  
  14.  
  15. max=mas[0][0];
  16. max_row=0;
  17. max_col=0;
  18. for(i=0;i<n;i++)
  19. {
  20.     for(j=0;j<n;j++)
  21.             {
  22.                printf("%6.2lf",mas[i][j]);
  23.                if(abs(mas[i][j])>max)
  24.                     {
  25.                         max=abs(mas[i][j]);
  26.                         max_row=i;
  27.                         max_col=j;
  28.                     }
  29.             }
  30.     printf("\n");
  31. }
  32.  
  33. i=j=k=0;
  34.  
  35. for(i=0;i<n-1;i++)
  36. {
  37.     if(i>=max_row&&k<n-1)
  38.         k++;
  39.     for(j=0;j<n-1;j++)
  40.         if(j<max_col)
  41.             mas2[i][j]=mas[k][j];
  42.         else
  43.             mas2[i][j]=mas[k][j+1];
  44.     k++;
  45. }
  46.  
  47. printf("\n");
  48.  
  49. for(i=0;i<n-1;i++)
  50. {
  51.     for(j=0;j<n-1;j++)
  52.             {
  53.                printf("%6.2lf",mas2[i][j]);
  54.             }
  55.     printf("\n");
  56. }
  57.  
  58. return 0;
  59. }

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

В этом коде на языке C ищутся наибольшие по модулю элементы в реальной квадратной матрице порядка k. Список действий:

  1. Задается размер матрицы n=5 и заполняется исходная матрица mas[n][n] = {1.0,2.0,3.0,4.0,5.0;6.0,7.0,8.0,9.0,10.0;1.0,13.0,2.0,5.0,4.0;-7.0,0.0,5.0,8.0,9.0;1.0,2.0,3.0,4.0,5.0}.
  2. Создается вспомогательная матрица mas2[n-1][n-1] для хранения максимальных элементов.
  3. Инициализируются переменные max=mas[0][0], max_row=0, max_col=0.
  4. Происходит поиск максимального элемента по модулю в исходной матрице, используя вложенные циклы.
  5. При необходимости, элементы вспомогательной матрицы mas2[i][j] заполняются значениями из исходной матрицы mas[k][j] или mas[k][j+1].
  6. Выводятся значения вспомогательной матрицы mas2[i][j] на экран.
  7. Функция main() возвращает 0, что означает успешное выполнение программы.

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы