Переставить в каждом столбце прямоугольной матрицы все отрицательные элементы в конец столбца - C (СИ)

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

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

Переставить в каждом столбце прямоугольной матрицы все отрицательные элементы в конец столбца. Распечатать часть полученной матрицы, состоящую из n первых строк, не имеющих отрицательных элементов.

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

textual
Листинг программы
  1. #include <stdio.h>
  2. const int N = 9;
  3. const int M = 4;
  4. int main()
  5. {
  6.     int i, j, k, x, n, flag = 0;
  7.     int a[9][4] = {{-8,-6,-21,0},{-78,2,19,-34},{-61,-27,-3,7},{7,4,-9,-1},{23,345,765,23},
  8.                     {34543,765,876,21},{4536,980,0,2},{756,908,234,456},{867,9054,2365,1}};
  9.     puts("Source matrix:");
  10.      for(i = 0; i < N; i++){
  11.         for(j = 0; j < M; j++)
  12.             printf("%9d", a[i][j]);
  13.         printf("\n");
  14.     }
  15.     printf("\n");
  16.     for(j = 0; j < M; j++){
  17.         for(i = 0; i < N; i++){
  18.             if(a[i][j] < 0){
  19.                 for(k = N-1; k > i; k--){
  20.                     if(a[k][j] >= 0){
  21.                         x = a[i][j];
  22.                         a[i][j] = a[k][j];
  23.                         a[k][j] = x;
  24.                     }
  25.                 }
  26.             }
  27.         }
  28.     }
  29.     puts("Matrix after sort:");
  30.      for(i = 0; i < N; i++){
  31.         for(j = 0; j < M; j++)
  32.             printf("%9d", a[i][j]);
  33.         printf("\n");
  34.     }
  35.     printf("\n");
  36.     for(i = 0; i < N; i++){
  37.         for(j = 0; j < M; j++){
  38.             if(a[i][j] < 0)
  39.                 flag = 1;
  40.         }
  41.         if(flag == 1)break;
  42.     }
  43.     n = i;
  44.     puts("Matrix only positive rows:");
  45.     for(i = 0; i < n; i++){
  46.         for(j = 0; j < M; j++)
  47.             printf("%9d", a[i][j]);
  48.         printf("\n");
  49.     }
  50.     return 0;
  51. }

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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