Показать полную графическую версию : Является ли матрица 3-го порядка симметричной С#
NeoX_2011
18-03-2012, 16:50
Подскажите пожалуйста, я делаю так , но у меня после каждой введеной цифры говорит симметрична или нет, а мне надо только после того, как введу полностью:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication17
{
class Program
{
static void Main(string[] args)
{
var matrix = new int[3, 3];
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++)
{
Console.WriteLine("Вводите a[{0}, {1}]:", i, j);
matrix[i, j] = int.Parse(Console.ReadLine());
if (matrix[i, j] != matrix[j, i])
Console.WriteLine("Матрица не симметрична\n");
else
Console.WriteLine("Симметрична\n");};
Console.ReadLine();
}
}
}
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++)
{
Console.WriteLine("Вводите a[{0}, {1}]:", i, j);
matrix[i, j] = int.Parse(Console.ReadLine()); »
if (matrix[i, j] != matrix[j, i])
Console.WriteLine("Матрица не симметрична\n");
else
Console.WriteLine("Симметрична\n");}; »
вот это надо разнести в разные циклы
NeoX_2011
18-03-2012, 17:22
вот это надо разнести в разные циклы »
Ну вот:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication17
{
class Program
{
static void Main(string[] args)
{
var matrix = new int[3, 3];
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++)
{
Console.WriteLine("Вводите a[{0}, {1}]:", i, j);
matrix[i, j] = int.Parse(Console.ReadLine());
};
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) {if (matrix[i, j] != matrix[j, i])
Console.WriteLine("Матрица не симметрична\n");
else
Console.WriteLine("Симметрична\n");
};
Console.ReadLine();
}
}
}
Ну при вводе случайного набора чисел выводит то что на первой картинке, а при вводе симметричной матрицы вторая картинка, а мне то надо что один раз было написано симметрична или нет
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) {if (matrix[i, j] != matrix[j, i])
Console.WriteLine("Матрица не симметрична\n");
else
Console.WriteLine("Симметрична\n"); »
потому что этот цикл на каждом шаге не решает какая матрица, а всего лишь проверяет одну пару, решение выносится только после того как все пары проверены.
самое удобное сделать так
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (matrix[i, j] != matrix[j, i])
{
Console.WriteLine("Non Симметрична\n");
return;
}
Console.WriteLine("Симметрична\n");
return;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.