Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Двумерный массив


Автор: BlitZz 25.9.2010, 17:42
Добрый день.
Имеется двумерный массив размерностью допустим 3 на 4
1) {"a1","b2","c2""0"}
2) {"b2","c1","a2","a1"}
3) {"a1","c2","c1","0"}
Нужно просканировать его построчно и вывести второй двумерный массив в котором будум все возможные элементы и еденицей будет значения которые присутствуют в строках а нулями или прочерками будут отсутствующие значения
Проблемой для меня является именно поиск данного значения в строке и запись его в другой массив.
Заранее благодарен smile
Пример:
http://ipicture.ru/uploads/100925/0QT7EzjsF8.jpg

Автор: userdab 25.9.2010, 18:14
Используйте Array.IndexOf для поиска элемента в строке. Еще можете посмотреть http://social.msdn.microsoft.com/Forums/ru-RU/csharpru/thread/3c1bac22-4e48-48f8-b105-8d7ab7216e7e тему, мож поможет.

Автор: m0dest 26.9.2010, 14:38
Пока так. А дальше надо уточнить требования к программе.

Код

            string[,] firstArray = {{"a1", "b2", "c2", "0"}, {"b2", "c1", "a2", "a1"}, {"a1", "c2", "c1", "0"}};

            string[,] resultArray = new string[3, 6];
            for (int i = 0; i < 3; i++)
                for (int j = 0; j < 6; j++)
                    resultArray[i, j] = "0";            

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    switch (firstArray[i, j])
                    { 
                        case "a1":
                            resultArray[i, 0] = "1";
                            break;
                        case "a2":
                            resultArray[i, 1] = "1";
                            break;
                        case "b1":
                            resultArray[i, 2] = "1";
                            break;
                        case "b2":
                            resultArray[i, 3] = "1";
                            break;
                        case "c1":
                            resultArray[i, 4] = "1";
                            break;
                        case "c2":
                            resultArray[i, 5] = "1";
                            break;
                        default:
                            break;
                    }
                }
            }

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    Console.Write(resultArray[i, j] + " ");
                }
                Console.WriteLine();
            }

Автор: BlitZz 26.9.2010, 21:54
Благодарю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)