Если максимальный элемент матрицы A лежит на главной диагонали, присвоить начальным элементам последовательности C1, C2, …, C25 значения элементов матрицы, лежащих выше главной диагонали, а остальным элементам этой последовательности – значения прочих элементов матрицы.
Решение
Using System;
public class Program
{
// метод получения максимального элемента
static double max(double [,] A, int n)
{
// находим максимум в матрице
double m = A[0,0];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (A[i,j] > m)
{
m = A[i,j];
}
}
}
return m;
}
// метод, определяющий, лежит ли максимальный элемент на главной диагонали
static bool max_on_diag(double [,] A, int n)
{
double m = max(A, n); // находим максимум
for (int i = 0; i < n; i++)
{
// проходим диагональ
// если элемент на ней, возвращаем true
if (A[i,i] == m)
return true;
}
return false;
}
// получение последовательности C
static void getC(double[, ] A, int n, double[] C)
{
int k = 0; // индекс в C
// проходим по элементам выше диагонали
for (int i = 0; i < n; i++)
{
for (int j = i+1; j < n; j++)
{
C[k++] = A[i, j];
}
}
// проходим по элементам ниже и на диагонали
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
C[k++] = A[i, j];
}
}
}
// ввод матрицы
static void input(double[, ] A, int n)
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
A[i, j] = Convert.ToDouble(Console.ReadLine());
}
}
}
// вывод матрицы на экран
static void print(double[, ] A, int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("{0,8:f}", A[i, j]);
}
Console.WriteLine();
}
}
public static void Main()
{
// ввод исходных данных
double[, ] A = new double[5,5];
Console.WriteLine("Введите матрицу");
input(A, 5);
// вывод исходных данных
Console.WriteLine("Введена матрица");
print(A, 5);
// обработка и вывод результата
if (max_on_diag(A, 5))
{
// получаем C
double[] C = new double[25];
getC(A, 5, C);
// вывод результата
Console.WriteLine("Получена последовательность");
for (int i = 0; i < 25; i++)
{
Console.WriteLine("{0}", C[i]);
}
}
else
Console.WriteLine("Максимальный элемент матрицы не лежит на главной диагонали");
}
}