Loading...
msmilkoff avatar msmilkoff 338 Точки

[Homeworк] Multidimentional Arrays... - Poblem.03 Matrix Shuffling

В условито май има нещо объркано, защото е посочено, че входа трябва да е в същия формат като в задача 2 (на един ред да се подават размерите на матрицата - N x M, a следващите N редове да се подават елементите на матрицата ред по ред), обаче, в примерите е показано, че елементите са подадени всеки един на отделен ред...

Реших я както е по условие (ред по ред) - http://pastebin.com/ptnjrCFT 

100% може да се реши по-кратко и лесно. Ако някои има оптимизиран вариант може да го постне.

1
Fundamentals Module
Filkolev avatar Filkolev 4482 Точки
Best Answer

"User input is provided like in the problem above – first you read the dimensions and then the data"

Това просто казва, че начинът на получаване на входа е същият, т.е. първо се подават размерите и после самите данни на матрицата. Не значи, че входа е 1:1 като формат. Четенето на входа не е съществена част от повечето задачи.

1
kidroca avatar kidroca 117 Точки

Здравей,

Тук: 

string[] commands = new string[5];
        while (commands.Length != 1 && commands[0] != "END")
        {
            commands = Console.ReadLine().Split().ToArray();
            if (commands.Length == 5 && commands[0] == "swap")
........

няма нужда да правиш проверка на commands.Length

commands.Length винаге е 5, защото commands = new string[5]; (нов стринг от 5 елемента)

Тук: 

int x1 = int.Parse(commands[1]);
                int y1 = int.Parse(commands[2]);
                int x2 = int.Parse(commands[3]);
                int y2 = int.Parse(commands[4]);
 
                string temp = matrix[x1, y1];
                matrix[x1, y1] = matrix[x2, y2];
                matrix[x2, y2] = temp;

трябва да направиш проверка преди да направиш matrix[x1, y1] = ... 

защото x1, y1, x2, y2 може да са извън индексите на матрицата и тогава ще ти гръмне, а по условие трябва да кажеш Invalid Input в такъв случей (пробвай да минеш стойностите от Examples за домашното на 'swap 10 9 8 7' ще ти гръмне).

По принцип домашното е дадено малко подвеждащо с тези x,y:

"You should swap the values at the given coordinates (cell [x1, y1] with cell [x2, y2]) and print the matrix at each step

в една кординатна систем x е измерението по широчина, а y по височина и би трябвало в матрица да се ползват така: 

cell[y1, x1]

Иначе браво, много хубаво ти се чете 0 WTFs

Успех! 

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