Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2017, 09:09   #1
VonrLyStap
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 3
Восклицание [C++]. Задача на String: заданы два слова, проверить, можно ли из букв первого слова сложить второе слово

Привет всем,
Скажу сразу ,я новичек и нужна ваша помощи с string.


У меня задание: Человек пишет два любых слова и мы знаем что первое слово длинее второго и в первом слове буквы не повторяются. Мне надо ,чтоб из первого слово можно было сложить второе слово - если можно ,то пользователю выводится текст - Можно ,если нельзя ,то - нельзя.

Помогите пожалуйста,буду очень благодарен. Искал ответ час 3-4 ,чтоб не было разговора ,что просто кинул задачу и все.


Код:
#include <iostream>
using namespace std;

int main()
{
    string word1, word2; // inputted words
    cin >> word1 >> word2;
    if (word2.size() > word1.size())
    {
        return 0;
    }
    for (int i = 0; i < word1.size(); i++) // safe proofing
    {
        if (islower(word1[i]) || islower(word2[i]) || word1.size() < 1
                || word1.size() > 250 || word2.size() < 1 || word2.size() > 250)
        {
            return 0;
        }
    }
    int sk1 = 0, sk2 = 0; // times a letter appears in the respective words
    int a = 0; // variable outside of for loop for the end if statement to work
    for (a; a < word2.size(); a++) //checks how many times each letter of the 2nd
                                   //word appears in both words
    {
        for (int i = 0; i < word1.size(); i++) //checks how many times the letter
                                               //appears in the 1st word
        {
            if (word2[a] == word1[i])
            {
                sk1++; // counts the times it appears
            }
        }
        for (int i = 0; i < word2.size(); i++) //checks how many times the letter
                                               //appears in the 2nd word
        {
            if (word2[a] == word2[i])
            {
                sk2++; // counts the times it appears
            }
        }
        if (sk1 < sk2) // if the 1st word has less of the letter than needed,
                       //it outputs that you can't make the 2nd word
        {
            cout << "NO";
            break;
        }
        sk1 = 0;
        sk2 = 0;
    }
    if (a == word2.size()) //if it goes through all the letters and there are enough
                           //of them to make the 2nd word, it says that it can be made.
    {
        cout << "YES";
    }
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 05.12.2017 в 09:22.
VonrLyStap вне форума Ответить с цитированием
Старый 05.12.2017, 09:27   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а вопрос-то в чем?

Цитата:
Сообщение от VonrLyStap Посмотреть сообщение
Искал ответ час 3-4
На какой вопрос?

Цитата:
Сообщение от VonrLyStap Посмотреть сообщение
чтоб не было разговора ,что просто кинул задачу и все.
Дык так и есть же, скинул задачу и чей-то кривой код ) Причем вроде для другой задачи, и ниже были ответы с комментариями по исправлению/улучшению.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.12.2017, 09:41   #3
VonrLyStap
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 3
По умолчанию

Как сделать данную задачу! Сам не программист,чисто для школы надо!
VonrLyStap вне форума Ответить с цитированием
Старый 05.12.2017, 09:49   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Как сделать данную задачу! Сам не программист,чисто для школы надо!
первое и самое главное ПРИДУМАТЬ алгоритм
т.е. описать СВОИМИ словами как ты САМ(без компьютера) действовал бы для решения этой задачи.
А потом постепенно уточнять данное описание до уровня программы.
нет желания придумывать - есть фриланс.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В. Конь Антон Паскаль, Turbo Pascal, PascalABC.NET 3 10.06.2015 14:44
Даны два слова. Составьте программу, определяющую можно или нет из букв слова А составить слово В Конь Антон Помощь студентам 1 24.05.2015 16:43
Проверить, являются ли данные два слова обращенными друг к другу, то есть первое читается слева направо так же, как второе справа FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 4 10.03.2014 18:23
Даны два слова. Получить третье слово из неповторяющихся символов, входящих как в первое, так и во второе слова. dlinkz Паскаль, Turbo Pascal, PascalABC.NET 8 01.02.2012 11:09
Напечатать слова, в которые не входит ни одна из букв первого слова abakuz Помощь студентам 0 30.05.2011 23:07