PDA

Показать полную графическую версию : Является ли матрица 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();
}
}
}

Beyound
18-03-2012, 17:09
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();
}
}
}



Ну при вводе случайного набора чисел выводит то что на первой картинке, а при вводе симметричной матрицы вторая картинка, а мне то надо что один раз было написано симметрична или нет

Beyound
19-03-2012, 18:00
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