Top.Mail.Ru
Ответы

Дана матрица М(6,6) действительных чисел. Найти минимум среди сумм элементов диагоналей главной и побочной C#

По дате
По рейтингу
Аватар пользователя
Высший разум
5мес

Матрица откуда берётся? В принципе 36 вещественных чисел можно и вручную ввести с клавиатуры, но если лень, то достаточно ввести границы диапазона [a;b], из которого будут случайным образом автоматически выбираться случайные числа. Границы диапазона a и b надо брать относительно небольшими, например, - в пределах тысячи по модулю. Саму матрицу лучше аккуратно вывести (при помощи форматного вывода, естественно, в фиксированном виде с тремя знаками после запятой - большая точность не требуется, а не полагаясь на автоматическую печать с табуляцией, при которой картинка может и в экран не влезть как при работе кода из предыдущего ответа

, а надо чтобы каждая строчка матрицы как раз легко влезала в экран, причём в любой системе программирования, а не дробилась бы на части!), а вслед за этим и сумму элементов главной или побочной диагонали - смотря по тому, которая из двух этих сумм меньше. В общем так:

12345678910111213141516171819202122232425262728293031323334
 using System;  
class Program  
{ 
  static void Main()  
  { 
    int l, m, n = 6; 
    double a, b, c; 
    Console.Write("a b » "); 
    var line = Console.ReadLine().Split(" "); 
    a = double.Parse(line[0]); 
    b = double.Parse(line[1]); 
    Random rnd = new Random(); 
    double [,] A = new double [n,n]; 
    c = b - a; 
    for (l = 0; l < n; ++l) 
    { 
      for (m = 0; m < n; ++m) 
      { 
        A[l,m] = a + c * rnd.NextDouble(); 
  	Console.Write("{0,9:f3}", A[l,m]); 
      } 
      Console.WriteLine(); 
    } 
    a = b = 0.0; 
    for (l = 0; l < n; l++) 
    { 
      a += A[l,l]; 
      b += A[l,n-1-l]; 
    } 
    Console.Write("Сумма элементов "); 
    if (a < b) Console.WriteLine("главной диагонали: " + a); 
    else Console.WriteLine("побочной диагонали: " + b); 
  }  
} 
Аватар пользователя
Ученик
5мес

using System;

class Program
{
static void Main()
{
// Определяем размерность матрицы
int size = 6;
double[,] M = new double[size, size];

// Инициализируем матрицу (например, случайными значениями)
Random rand = new Random();
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
M[i, j] = rand.NextDouble() * 100; // случайные числа от 0 до 100
}
}

// Выводим матрицу
Console.WriteLine("Матрица M:");
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
Console.Write(M[i, j] + "\t");
}
Console.WriteLine();
}

// Находим сумму элементов главной диагонали
double mainDiagonalSum = 0;
for (int i = 0; i < size; i++)
{
mainDiagonalSum += M[i, i];
}

// Находим сумму элементов побочной диагонали
double secondaryDiagonalSum = 0;
for (int i = 0; i < size; i++)
{
secondaryDiagonalSum += M[i, size - 1 - i];
}

// Находим минимум среди двух сумм
double minSum = Math.Min(mainDiagonalSum, secondaryDiagonalSum);

// Выводим результаты
Console.WriteLine($"\nСумма главной диагонали: {mainDiagonalSum}");
Console.WriteLine($"Сумма побочной диагонали: {secondaryDiagonalSum}");
Console.WriteLine($"Минимум среди сумм диагоналей: {minSum}");
}
}

Аватар пользователя
Ученик
5мес

определитель грань побочные космонавты доработка бешенство остроумие замена тщеславие огранничение

Аватар пользователя
Мыслитель
5мес
12345678
 double MinDiagonalSum(double[,] M) { 
    double sumMain = 0, sumSecondary = 0; 
    for (int i = 0; i < 6; i++) { 
        sumMain += M[i, i]; 
        sumSecondary += M[i, 5 - i]; 
    } 
    return Math.Min(sumMain, sumSecondary); 
} 
Аватар пользователя
Мастер
5мес

Найди Нео, он поможет