Определить является ли матрица верхнетреугольной или нет - C#
Формулировка задачи:
Здравствуйте, мне нужно определить является ли матрица верхнетреугольной или нижнетреугольной, нашел для этого метод в интернете но он мне выдает только "не является верхне- или нижнетреугольной", хотя когда проверял специально вводил нужную матрицу.
public string Vid()
{
string S;
bool v = true; bool h = true;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < i; j++)
{
if (a[i, j] != 0)
{
v = false;
}
if (a[j, i] != 0)
{
h = false;
}
}
}
if (v==true)
return S="верхнетреугольная";
if (h==true)
return S="нижннетреугольная";
return S="не является верхне- или нижнетреугольной";
}
Если надо могу скинуть код всей программы
Решение задачи: «Определить является ли матрица верхнетреугольной или нет»
textual
Листинг программы
using System;
class Program
{
private static string MatrixKind(int[,] matrix)
{
bool upper = true;
bool lower = true;
for (int i = 0; i < matrix.GetLength(0); ++i)
{
for (int j = 0; j < matrix.GetLength(1); ++j)
{
upper = upper && (i <= j || matrix[i, j] == 0);
lower = lower && (i >= j || matrix[i, j] == 0);
if (!upper && !lower) return "ни верхняя, ни нижняя";
}
}
return upper ? "верхняя" : "нижняя";
}
public static void Main()
{
int[,] a = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
Console.WriteLine(MatrixKind(a));
}
}