Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
west0293
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
#1

Поиск совпадений в массиве

13.09.2011, 16:36. Просмотров 1180. Ответов 5
Метки нет (Все метки)

Добрый день. нужно реализовать алгоритм на c#.
Вводим массив чисел, например:
1,5,4,6,2,12,16,3,8,...,6...
На каждом шаге, программа проверяет совпало ли последнее введенное число с одним из предыдущих, т.е. когда мы ввели 6, компьютер увидит, что число 6 уже было и проверит, совпадает ли предпоследнее число с предыдущим перед ранее введенной 6, т.е. равно ли предпоследнее число 4, если не равно, то идем дальше. и так, пока последнее введенное и предпоследнее введенное числа совпадут с двумя подрядыдущими числами из ранее введенных.
например, если предпоследнее число из выше указанных равно 4, то мы пишем "ура", а если не равно, то идем дальше. Ввели, допустим, 16, оно совпало с одним из ранее введенных. проверяем предыдущее. это 6. а в уже введенном массиве перед 16 идет 12, значит проверяем дальше. и так, пока 2 числа не повторятся.

Сам алгоритм я понимаю, а вот записать его на C# не могу. Предполагаю, что сделать это можно с помощью while(), но не получается реализовать сам алгоритм. Помогите, пожалуйста, с написанием.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2011, 16:36
Ответы с готовыми решениями:

Поиск совпадений значение в массиве строк
Добрый день форумчане. Вот код: var foundLines_a =...

Поиск совпадений
Привет, подскажите как осуществить: Пользователь вводит с клавиатуры слово,...

Поиск совпадений
Помогите пожалуйста, задали начинающему такую задачку хоть вешайся... На...

Поиск совпадений в массивах
Добрый вечер. Подскажите пожалуйста как найти совпадения в n массивах...

Поиск совпадений в тексте
Очередной раз привет всем! Уже в третий раз задаю подобный вопрос. Пожалуйста...

5
Jetworm
4 / 4 / 1
Регистрация: 07.07.2011
Сообщений: 31
13.09.2011, 19:04 #2
на трезвую голову - фиг поймешь...
0
west0293
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
13.09.2011, 19:28  [ТС] #3
Блин... ну, допустим, вводим числа одно за одним. каждое введенное число проверяется на наличие среди предыдущих.если совпало с одним из ранее введенных, то проверяем предпоследнее введенное, совпадает ли оно с тем, которое идет перед подчеркнутым. если совпало, то выводим "ура", если не совпало вводим следующее число.
что-то типа:
C#
1
2
3
4
5
//* a[last] - последнее введенное число
a[i] - одно из чисел массива,   
if (a[last] == a[i], a[last-1] == a[i-1])
Console.WriteLine("Ура");
else
вводим следующее число и проверяем его.


Это нужно, чтобы найти когда последовательность начнет повторяться. т.е. я буду вводить числа, и, например, начиная с 62 числа последовательность, которая началась с 32 числа начнет повторяться. допустим я ввожу 1,5,6,8,14,54,12,16,12,46...,8,14,54,12 и тут мне компьютер выдаст, что последовательность начала повторяться. он заметит, что 8,14,54,12 уже были и выдаст следующее, т.е. 16, потом следующее 12, и т.д.
0
ForestG
35 / 35 / 9
Регистрация: 21.11.2009
Сообщений: 201
13.09.2011, 21:21 #4
Прям как гуглить)))
0
Пацанчик
7 / 7 / 6
Регистрация: 18.05.2010
Сообщений: 26
14.09.2011, 02:33 #5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если правильно понял задание, то можно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
List<int> intValues = new List<int>();
            int curValue = 0, x;
            while(true)
            {
                Console.Write("\nВведите число: ");
                try{ curValue = Convert.ToInt32(Console.ReadLine()); }
                catch { break; }
                // Засекаем последнее вхождение "введенного" числа
                x = intValues.LastIndexOf(curValue);
                // Проверка что последнее вхождение "введенного" числа -
                // не первый элемент массива и в массиве как минимум 4 числа
                if ((x > 0) && (intValues.Count > 2))
                    // Проверяем на равенство "предпоследние" числа двух "пар"
                    if (intValues[x-1] == intValues[intValues.Count-1])
                    {
                        Console.WriteLine("Ура!");
                    }
                // Не забываем внести в массив "введенное" число :)
                intValues.Add(curValue);
            }
1
west0293
3 / 3 / 1
Регистрация: 27.06.2011
Сообщений: 101
14.09.2011, 13:58  [ТС] #6
Да, спасибо большое, это то, что нужно. Мне нужна была именно эта структура, остальное доработаю сам. Огромное Вам спасибо!
0
14.09.2011, 13:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2011, 13:58

Поиск совпадений по массиву
В строковом массиве находятся строки слова. string={&quot;hi&quot;, &quot;here&quot;, &quot;your&quot;,...

Чтение XML и поиск совпадений
Вообщем уважаемые программисты, вот у меня есть один XML Файл (для него я пишу...

Поиск совпадений в двух массивах
Добрый день задача тривиальная. Нужно сравнить два массива и удалить из одного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru