Показать сообщение отдельно
Старый 17.03.2011, 21:37   #7
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Задачка на математику и логику.

Пробую принять замечания во внимание:

int mw=5,mh=5,x;
int[,] m=new int[mw,mh]; // Тут меня всегда поправляет студия, хотя я знаю как правильно =)
// Предполагаю, что массив заданных размеров способен вместить 100 чисел. Но можно условие присобачить.
for(int c=0;c<100;c++){
m[c%mw][c/mw]=(c+1)*5; // Здесь я наверное что-то не понимаю. Я заполняю массив "книжкой", т.е. построчно,
// справа налево, сверху вниз. А как надо?
}
// Массив возможно изменяется, предполагаю, что числа могли перемещаться любым случайным (или нет) образом. Переменные mw,mh принимают новое значение.
// Тут мне не приходит в голову других решений кроме поиска по числу.

for(int c=0;c<5;c++){
for(int a=0;a<mw*mh;a++){
if(m[a%mw][a/mw]==(c+1)*20){ Console.WriteLine("m[{0},{1}]={2}",(a%mw),(a/mw),(c+1)*20); break; }
}
}

// В остальных случаях можно подправить мое первое решение под поиск по новым размерам, или сохраненным старым.
// (Если новый массив числа заполнят по тому же принципу, или останутся "в уголке" с теми же координатами, что и в массиве старого размера)

P.S. Я не считаю себя еще настолько крутым программистом, что бы с презрением относиться к "школьным" задачкам. Мне интересно сравнить мое решение с не моим.
P.P.S. Почему форум затирает все отступы перед строкой? (Кроме текста внутри тега code)
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием