1 / 1 / 0
Регистрация: 01.03.2014
Сообщений: 67
1

Даны два слова. Выяснить можно ли из первого слова составить второе

30.05.2017, 22:09. Показов 2447. Ответов 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
using System;
 
namespace Prog1
{
    class Program
    {
        static void Main()
        {
            int k=0;
            Console.WriteLine("Введите первое слово :");
            string s1 = Console.ReadLine();
            Console.WriteLine("Введите первое слово :");
            string s2 = Console.ReadLine();
            for (int i = 0; i < s1.Length; i++)
            {
                if (s1[i] < s2.Length) k++;               
            }
            if (k == s1.Length)
            {
                Console.WriteLine("Из первого можно составить второе");
            }
            else
            {
                Console.WriteLine("нельзя составить второе");
            }
            Console.ReadKey();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2017, 22:09
Ответы с готовыми решениями:

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

Даны два слова. Для каждой буквы первого слова определить, входит ли она во второе слово
Решить нужно на языке С#.Даны два слова. Для каждой буквы первого слова определить, входит ли она...

Для каждого слова первого предложения определить, входит ли оно во второе предложение
Решить задачу в консольном режиме : Даны 2 предложения. Для каждого слова первого предложения...

Для каждой буквы первого слова определить, входит ли она во второе слово
Даны 2 слова. Для каждой буквы первого слово определить входит ли она во второе слово....

7
3465 / 2472 / 1170
Регистрация: 14.08.2016
Сообщений: 8,164
30.05.2017, 22:25 2
C#
1
2
3
4
5
6
7
8
Console.WriteLine("Введите первое слово :");
var s1 = Console.ReadLine().ToCharArray();
Console.WriteLine("Введите первое слово :");
var s2 = Console.ReadLine().ToCharArray();
Array.Sort(s1);
Array.Sort(s2);
if(s1.SequenceEqual(s2)) cw("yes!");
else cw("no");
0
Special user
36 / 36 / 16
Регистрация: 07.10.2013
Сообщений: 121
30.05.2017, 22:56 3
Diamante, вы проверяли работоспособность своего кода? На каких примерах можно узнать? Потому что:

Даны два слова. Выяснить можно ли из первого слова составить второе


Нонсенс, что из данной панграммы нельзя получить слово wings.

Алгоритм тут нужен не сортировочный, если можно так выразиться.
0
SkyBy
30.05.2017, 23:01
  #4

Не по теме:

Ну и по поводу cw:
The name 'cw' does not exist in the current context.
Сниппет нужен для быстрой вставки фрагмента кода, он не является полной заменой соответственному фрагменту.

0
3465 / 2472 / 1170
Регистрация: 14.08.2016
Сообщений: 8,164
30.05.2017, 23:56 5
SkyBy, первое: я понял задание так: можно ли перестановкой букв из одного слова получить второе(по аналогии с анаграммами), подразумевая одинаковую длину, а не можно ли из букв одного слова, хоть как-нибудь получить 2е слово
второе: я не на экзамене и не перед заказчиком, я предложил - не нравится? можете пройти в пешее эротическое
третье: "я художник - я так вижу"(цитата, правда не знаю чье авторство), в правилах нигде не указано, что я обязан приводить максимально правильный код, ты же вкурил что это
0
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
31.05.2017, 06:59 6
Yokano, немного изменил решение от Diamante, использовав тот же подход через Array:
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
30
public static void Main()
{
    Console.WriteLine("Введите первое слово :");
    var s1 = Console.ReadLine();
 
    Console.WriteLine("Введите первое слово :");
    var s2 = Console.ReadLine();
    var findCharIndex = new int[s2.Length];
    var isMake = true;
 
    if (s1.Length > s2.Length)
    {
        for (int i = 0; i < s2.Length; i++)
        {
            var s1FindCharLength = Array.FindAll(s1.ToLower().ToCharArray(), ch => ch == s2[i])
                .Length;
            var s2FindCharLength = Array.FindAll(s2.ToLower().ToCharArray(), ch => ch == s2[i])
                .Length;
 
            if(s1FindCharLength < s2FindCharLength)
                isMake = false;
        }
    }
    else
        isMake = false;
 
        Console.WriteLine(isMake ? "yes!" : "no");
 
    Console.ReadKey();
}
Добавлено через 4 минуты
Цитата Сообщение от Yokano Посмотреть сообщение
C#
1
2
3
4
5
for (int i = 0; i < s1.Length; i++)
 {
 if (s1[i] < s2.Length)
 k++;
 }
Что это вообще такое, попытка ткнуть пальцем в небо? Если числовое значение char меньше длинны вторго слова, то эта та самая буква, которая есть и в первом и во втором слове
0
6203 / 2454 / 718
Регистрация: 11.04.2015
Сообщений: 3,968
Записей в блоге: 43
31.05.2017, 10:36 7
C#
1
2
3
4
5
6
7
8
9
10
        static void Main(string[] args)
        {
            Console.WriteLine("Введите первое слово :");
            string s1 = Console.ReadLine();
            Console.WriteLine("Введите второе слово :");
            string s2 = Console.ReadLine();
            var result = s2.All(c => s1.Count(cc => cc == c) >= s2.Count(cc => cc == c)) ? "можно" : "нельзя";
            Console.WriteLine("Из первого слова {0} составить второе", result);
            Console.ReadKey();
        }
0
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
31.05.2017, 14:11 8
Принцип - такой, (пример без оптимизаций и проч.)

Кликните здесь для просмотра всего текста
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
30
31
32
33
34
35
36
using System;
using System.Linq;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //из частичного\полного набора
            var w11 = "abcdefg";
            var w12 = "cedb";
            var w13 = "dcbafge";
 
            var answer11 = w12.Distinct().All(c => w11.Distinct().Contains(c));
            Console.WriteLine(answer11);
 
            var answer12 = w13.Distinct().All(c => w11.Distinct().Contains(c));
            Console.WriteLine(answer12);
 
            //только из полного набора
            var w21 = "abcdefg";
 
            var w22 = "cedb";
            var w23 = "dcbafge";
 
            var answer21 = w22.Distinct().Count() == w21.Distinct().Count();
            Console.WriteLine(answer21);
 
            var answer22 = w23.Distinct().Count() == w21.Distinct().Count();
            Console.WriteLine(answer22);
 
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2017, 14:11
Помогаю со студенческими работами здесь

Для каждого слова первого предложения определить, входит ли оно во второе предложение
Помогите решить!Даны два предложения. Для каждого слова первого предложения (в том чис-ле для...

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

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

Даны два слова. Для каждой буквы первого слова определить, входит ли она во второе слово
здравствуйте уважаемые прогеры! можно этот же код только на делфи? PS:желательно на форме!...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru