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

Проблема с Contains

22.02.2019, 22:06. Просмотров 1256. Ответов 7
Метки нет (Все метки)

Помогите найти ошибку в коде.
Мне нужно вывести все пары чисел в которых первое число состоит из цифр которых нет во втором.
А выводятся все пары с первым числом.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 static void Main(string[] args)
        {
            Console.WriteLine("Введите количество элементов");
            int n = int.Parse(Console.ReadLine());
 
            string[] nums = new string[n]; 
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Введите {0}-й элемент", i + 1);
                nums[i] = (Console.ReadLine());
 
 
            }
            for (int i = 0; i < n; i++)
            {
                for (int b = i; b < n; b++)
                {
 
                    if (nums[i].Contains(nums[b]) == false)
                    {
 
                        Console.WriteLine(nums[i]);
                        Console.WriteLine(nums[b]);
                    }
                }
 
                Console.ReadLine();
            }
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2019, 22:06
Ответы с готовыми решениями:

проблема при работе с китайским J-LINK 8 или же проблема с с
Всем привет. Решил Сам собрать себе дисковери кит на базе at91sam7s64-ek. Подарили мне китайский...

Холодильник LG .мод GR-M392YQ.Проблема с дверю, Проблема с дверю при закрывании
Доброго времени суток уважаемые! Холодильник LG GR-M392YQ с первых дней клиент жалуется на то что...

СМА Indesit AQ70L 05 CIS проблема с вращением двигателя, СМА Indesit AQ70L 05CIS проблема с вращением двигателя
сма Indesit AQ70L 05 CIS серийный 203120035 инд код 50770730000 платформа Аркадия однофазка тип...

проблема
Здравствуйте! Помогите решить проблему. После запуска ПК, через 2 минуты процесс svchost.exe...

7
1026 / 675 / 458
Регистрация: 21.01.2014
Сообщений: 1,784
22.02.2019, 22:56 2
blackknife, нужен третий цикл, который будет посимвольно проверять наличие цифр из первого числа во втором.
0
1 / 0 / 1
Регистрация: 22.02.2019
Сообщений: 12
23.02.2019, 00:51  [ТС] 3
Цитата Сообщение от Lexeq Посмотреть сообщение
blackknife, нужен третий цикл, который будет посимвольно проверять наличие цифр из первого числа во втором.
Что-то не понял зачем нужен третий цикл и как реализовать разделение на символы.
C#
1
if (nums[i].Contains(nums[b]) == false)
Contains должен был посимвольно сравнивать два числа.
0
1026 / 675 / 458
Регистрация: 21.01.2014
Сообщений: 1,784
23.02.2019, 00:58 4
Цитата Сообщение от blackknife Посмотреть сообщение
Contains должен был посимвольно сравнивать два числа.
Не должен. Contains определяет есть ли в строке подстока. Целиком.
1
1 / 0 / 1
Регистрация: 22.02.2019
Сообщений: 12
23.02.2019, 02:29  [ТС] 5
Цитата Сообщение от Lexeq Посмотреть сообщение
blackknife, нужен третий цикл, который будет посимвольно проверять наличие цифр из первого числа во втором.
Можете помочь с таким циклом?
В голову пришло только записывать каждую цифру в список.
0
1026 / 675 / 458
Регистрация: 21.01.2014
Сообщений: 1,784
23.02.2019, 02:49 6
Лучший ответ Сообщение было отмечено blackknife как решение

Решение

blackknife,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
                for (int i = 0; i < n; i++)
                {
                    string first = nums[i];
                    for (int b = i + 1; b < n; b++)
                    {
                        string second = nums[b];
                        bool firstContainsDigitFromSecond = false;
                        for (int c = 0; c < first.Length; c++)
                        {
                            if (second.Contains(first[c]))
                            {
                                firstContainsDigitFromSecond = true;
                                break;
                            }
                        }
                        if (!firstContainsDigitFromSecond)
                        {
                            Console.WriteLine(first);
                            Console.WriteLine(second);
                        }
                    }
 
                    Console.ReadLine();
                }
Можно и без цикла, если вместо Contains использовать Any.
1
1 / 0 / 1
Регистрация: 22.02.2019
Сообщений: 12
23.02.2019, 14:40  [ТС] 7
Цитата Сообщение от Lexeq Посмотреть сообщение
blackknife,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
                for (int i = 0; i < n; i++)
                {
                    string first = nums[i];
                    for (int b = i + 1; b < n; b++)
                    {
                        string second = nums[b];
                        bool firstContainsDigitFromSecond = false;
                        for (int c = 0; c < first.Length; c++)
                        {
                            if (second.Contains(first[c]))
                            {
                                firstContainsDigitFromSecond = true;
                                break;
                            }
                        }
                        if (!firstContainsDigitFromSecond)
                        {
                            Console.WriteLine(first);
                            Console.WriteLine(second);
                        }
                    }
 
                    Console.ReadLine();
                }
Можно и без цикла, если вместо Contains использовать Any.
Спасибо большое.
Только почему-то проверяются только пары с первым введенным числом.
0
Миниатюры
Проблема с Contains  
1026 / 675 / 458
Регистрация: 21.01.2014
Сообщений: 1,784
23.02.2019, 15:04 8
blackknife, жмите энтер, у вас же у самого добавлен Console.ReadLine().
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2019, 15:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проблема Wi-Fi
Привет народ. Короче я в ступоре. Ноутбук Xiaomi Pro. Друг поставил Lightroom потестить мой...

Проблема
3 дня назад подключил wifi,после этого начались такие проблемы,когда захожу на сервер программы...

Проблема с VS
Привет, поставил себе Visual Studio 2005 релиз, все до этого работало нормально. Сам я работаю в...

проблема
мне ноут выдаёт вот эту ошибку как сней бороться и что это памогите.. Имя события...


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

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

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