Программа определения количества симметричных матриц - C#
Формулировка задачи:
Заданы две матрицы С(4, 4) и D(3, 3). Написать
программу определения количества симметричных матриц.
Матрица называется симметричной, если транспонированная
матрица равна исходной. Для каждой симметричной матрицы
вычислить сумму элементов, лежащих вне главной диагонали.
ИМЕЕТСЯ СЛЕДУЮЩИЙ (ОШИБОЧНЫЙ) КОД:
ИЗВИНИТЕ,ЕСЛИ НЕПРАВИЛЬНО ОФОРМИЛ. ОЧЕНЬ НАДО. БУДУ БЛАГОДАРЕН
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Laba7 { class Program { static void Main(string[] args) { Int32[,] c = new Int32[4, 4]; Int32[,] ct = new Int32[4, 4]; Int32[,] d = new Int32[3, 3]; Int32[,] dt = new Int32[3, 3]; Int32 p1, p2; int ic, jc, id, jd; Console.WriteLine("Введите массив C"); for (ic = 0; ic < 4; ic++) { for (jc = 0; jc < 4; jc++) c[ic, jc] = Convert.ToInt32(Console.ReadLine()); } for (ic = 0; ic < 4; ic++) { for (jc = 0; jc < 4; jc++) { Console.Write("{0,5}", c); } Console.WriteLine(); } // transp(c, 4, ct); if (c.Equals(ct)) { Console.WriteLine("Массив С симметричный"); p1 = c[1, 2] + c[1, 3] + c[1, 4] + c[2, 1] + c[2, 3] + c[2, 4] + c[3, 1] + c[3, 2] + c[3, 4] + c[4, 1] + c[4, 2] + c[4, 3]; Console.WriteLine(p1); } else Console.WriteLine("Массив С не симметричный"); Console.WriteLine("Введите массив D"); for (id = 0; id < 3; id++) { for (jd = 0; jd < 3; jd++) d[id, jd] = Convert.ToInt32(Console.ReadLine()); } transp(d, 3, dt); if (d.Equals(dt)) { Console.WriteLine("Массив D симметричный"); p2 = d[1, 2] + d[1, 3] + d[2, 1] + d[2, 3] + d[3, 1] + d[3, 2]; Console.WriteLine(p2); } else Console.WriteLine("Массив D не симметричный"); } static void transp(Int32[,] mtr, int p, Int32[,] mtrt) { int i; int j; for (i = 0; i < p; i++) { for (j = 0; j < p; j++) mtrt[j, i] = mtr[i, j]; } } } }
Решение задачи: «Программа определения количества симметричных матриц»
textual
Листинг программы
using System; namespace ConsoleApplication1 { class Program { static void Main() { int i, j; int[,] C = new int[4, 4]; int[,] D = new int[3, 3]; Console.WriteLine("Заполните матрцу C"); for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { Console.Write("Введите элемент [{0},{1}] ",i,j); C[i, j] = int.Parse(Console.ReadLine()); } } Console.WriteLine("Заполните матрцу D"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { Console.Write("Введите элемент [{0},{1}] ", i, j); D[i, j] = int.Parse(Console.ReadLine()); } } if (Semetr(C)) { int sum = 0; for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i != j) { sum += C[i, j]; } } } Console.WriteLine("Сумма : {0} ",sum); Console.WriteLine("Матрица C : семетрична"); } else Console.WriteLine("Матрица C : не семетрична"); if (Semetr(D)) { int sum = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (i != j) { sum += D[i, j]; } } } Console.WriteLine("Сумма : {0} ", sum); Console.WriteLine("Матрица D : семетрична"); } else Console.WriteLine("Матрица D : не семетрична"); Console.ReadKey(); } static bool Semetr(int[,] a) { bool symm = true; for (int i = 0; i < a.GetLength(0); ++i) { for (int j = 0; j < a.GetLength(1); ++j) if (a[i, j] != a[j, i]) { symm = false; break; } if (!symm) break; } return symm; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д