Loading...
Iv_Konov avatar Iv_Konov 383 Точки

Здравей, MartinRusanov,

 

Малка корекция до 100/100:...

===

            for (int rows = 0; rows < N; rows++)
            {
                for (int cols = 0; cols < N; cols++)
                {
                    if ((matrix[rows, cols] == symbol))
                    {
                        Console.WriteLine("(" + rows + ", " + cols + ")");
                        //break;
                        return;
                    }
                    //else if (rows == N - 1 && cols == N - 1 && matrix[rows, cols] != symbol)
                    //{
                    //    Console.WriteLine(symbol + " does not occur in the matrix");

                    //}

                    //else
                    //{
                    //    continue;
                    //}
                }
            }

            Console.WriteLine(symbol + " does not occur in the matrix");

===

 

Може да пробваш подобно въвеждане (в този случай се чете по-лесно, иначе за кратки варианти също работи добре):

=

Console.WriteLine($"({rows}, {cols})"); 

=

Поздрави,

Иван

2
29/06/2020 22:49:27
MartinBG avatar MartinBG 4803 Точки

Използвате break при намиране на съвпадение във вложения цикъл. Това прекъсва изпълнението на текущия вътрешен цикъл, но не и на външния, който ще се завърти отново, освен ако не е бил на последния ред, и накрая ще отпечата и съобщението, че не е намерен символа.

Ето тест, който демонстрира проблема:

3
ABC
X!@
DEF
!

 

Помислете как да решите този проблем.

Има много варианти (булева променлива, прекъсване на програмата и т.н.) и целта на задачата е да упражните точно това.

2
Iv_Konov avatar Iv_Konov 383 Точки

@MartinBG,

разбира се, и този път обучението ви е правилно! 

Да,  примерно при class се ползва return, но при ползване на return при задачата на @MartinRusanov е кратко решение... (иначе bool + break може да върши коректно, но е с повече текста при тази задача) 

От друга страна, пиша по-кратки думи, но обученията идват от Майстори и Треньори, не от мен!

 

Поздрави,

Иван

 

 

0
MartinRusanov avatar MartinRusanov 95 Точки

Благодаря на всички !

1
Elena123456 avatar Elena123456 235 Точки

Здравейте,

и аз благодаря за темата и отговорите. smiley

Имах същия проблем със задачата, но смених break с return, като предваритено направих и една проверка с Contains() дали се съдържа дадения символ. Накрая получих 100/100.

Поздрави!

 

using System;
using System.Linq;

namespace SymbolInMatrix
{
    class Program
    {
        static void Main(string[] args)
        {
            int size = int.Parse(Console.ReadLine());
            char[,] matrix = new char[size, size];
            for (int row = 0; row < size; row++)
            {
                char[] currentRow = Console.ReadLine().ToArray();
                for (int col = 0; col < size; col++)
                {
                    matrix[row, col] = currentRow[col];
                }
            }

            char symbol = char.Parse(Console.ReadLine());
            if (matrix.Cast<char>().Contains(symbol))
            {
                for (int row = 0; row < matrix.GetLength(0); row++)
                {
                    for (int col = 0; col < matrix.GetLength(1); col++)
                    {
                        if (matrix[row, col] == symbol)
                        {
                            Console.WriteLine($"({row}, {col})");
                            return;
                        }
                    }
                }
            }

            else
            {
                Console.WriteLine($"{symbol} does not occur in the matrix");
            }
        }
    }
}

 

0
18/12/2020 12:48:56
Acidlord avatar Acidlord 3 Точки

100/100

int n = int.Parse(Console.ReadLine());

char[,] matrix = new char[n, n];


for (int row = 0; row < matrix.GetLength(0); row++)
{
    string input = Console.ReadLine();

    for (int col = 0; col < matrix.GetLength(1); col++)
    {
        matrix[row, col] = input[col];
    }
}

char target = char.Parse(Console.ReadLine());
bool isFound = false;

for (int row = 0; row < matrix.GetLength(0); row++)
{
    for (int col = 0; col < matrix.GetLength(1); col++)
    {
        if (matrix[row, col] == target)
        {
            isFound = true;
            Console.WriteLine($"({row}, {col})");
            break;
        }
    }

    if (isFound)
    {
        break;
    }
}

if (!isFound)
{
    Console.WriteLine($"{target} does not occur in the matrix");
}

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.