Расположить столбцы матрицы по возрастанию сумм модулей их отрицательных нечетных элементов - C#

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

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

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

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

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {
  9.             Console.WriteLine("Введите размерность матрицы");
  10.             int n = int.Parse(Console.ReadLine());
  11.             int[,] massiv = new int[n, n];
  12.             int i, j;
  13.             Console.WriteLine("Заполните матрицу");
  14.             for ( i = 0; i < n; i++)
  15.             {
  16.                 for ( j = 0; j < n; j++)
  17.                 {
  18.                     Console.Write("Введите элемент [{0},{1}]: ",i,j);
  19.                     massiv[i,j] = int.Parse(Console.ReadLine());
  20.                 }
  21.             }
  22.             Console.WriteLine("Исходная матрица");
  23.             for (i = 0; i < n; i++)
  24.             {
  25.                 for (j = 0; j < n; j++)
  26.                 {
  27.                     Console.Write(" {0} ", massiv[i, j]);
  28.                 }
  29.                 Console.WriteLine();
  30.             }
  31.             int flag = 1;
  32.             while (flag == 1)
  33.             {
  34.                 flag = 0;      
  35.  
  36.                 for (i = 0; i < n-1 ; i++)
  37.                 {
  38.                     double sum1 = 0, sum2 = 0;
  39.                     for (j = 0; j < n  ; j++)
  40.                     {
  41.                         if (massiv[j, i] < 0 && massiv[j, i] % 2 != 0)
  42.                         {
  43.                             sum1 += Math.Abs(massiv[j, i]);
  44.                         }
  45.                         if (massiv[j, i + 1] < 0 && massiv[j, i + 1] % 2 != 0)                    
  46.                         {
  47.                             sum2 += Math.Abs(massiv[j, i + 1]);
  48.                         }                                                            
  49.                     }
  50.                     if (sum1 > sum2)
  51.                     {
  52.                         for (j = 0; j < n; j++)
  53.                         {
  54.                             int tmp = massiv[j, i];
  55.                             massiv[j, i] = massiv[j, i+1 ];
  56.                             massiv[j,i+1] = tmp;
  57.                         }
  58.                         flag = 1;
  59.                     }
  60.                 }
  61.             }
  62.             Console.WriteLine("Преобразованная матрица");
  63.             for ( i = 0; i < n; i++)
  64.             {
  65.                 for ( j = 0; j < n; j++)
  66.                 {
  67.                     Console.Write(" {0} ",massiv[i,j]);
  68.                 }
  69.                 Console.WriteLine();
  70.             }
  71.            
  72.             for (i = 0; i < n; i++)
  73.             {
  74.                 double sum = 0;
  75.                 for (j = 0; j < n; j++)
  76.                 {
  77.                     if (massiv[j, i] < 0)
  78.                     {
  79.                         for (j = 0; j < n; j++)
  80.                         {
  81.                             sum += massiv[j, i];
  82.                         }
  83.                     }                                                        
  84.                 }
  85.                 Console.WriteLine("Сумма {0}", sum);
  86.             }
  87.                     Console.ReadKey();
  88.         }
  89.     }
  90.  
  91.  
  92. }

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


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

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

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

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

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

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