Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ «Неделя первая - Минимальная строка» #1

Войти
Регистрация
Восстановить пароль
Рейтинг: 1.00. Голосов: 1.

С++ «Неделя первая - Минимальная строка» #1

Запись от acmades размещена 13.07.2017 в 01:24
Обновил(-а) acmades 15.07.2017 в 13:09 (Изменение категории)

Курс Основы разработки на C++: белый пояс неделя первая.
Задание:
В стандартном потоке даны три строки, разделённые пробелом. Каждая строка состоит из строчных латинских букв и имеет длину не более 30 символов. Выведите в стандартный вывод лексикографически минимальную из них.

Примеры
ввод - > вывод
milk milkshake month -> milk
c a b -> a
fire fog wood -> fire

Мое решение:
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main()
{
    string a, b, c;
    vector<string> str;
    cin >> a >> b >> c;
    str.push_back(a);
    str.push_back(b);
    str.push_back(c);
 
    if (str[0] < str[1] && str[0] < str[2]) {
        cout << str[0];
    }
    else if (str[1] < str[2]) {
        cout << str[1];
    }
    else { cout << str[2]; }
 
    return 0;
}
Вопрос: как можно оптимизировать, сделать компактнее, проще? Или подскажите что использовать, сам напишу.
Всего комментариев 8

Комментарии

  1. Старый комментарий
    Аватар для Avazart
    Цитата:
    Вопрос: как можно оптимизировать, сделать компактнее, проще? Или подскажите что использовать, сам напишу.
    std::sort()
    std::lexicographical_compare()

    И вообще странно когда в ваших типа "уроках" используются в контейнеры и не используются алгоритмы.
    Запись от Avazart размещена 25.07.2017 в 13:46 Avazart вне форума
    Обновил(-а) Avazart 25.07.2017 в 13:51
  2. Старый комментарий
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    std::sort()
    std::lexicographical_compare()

    И вообще странно когда в ваших типа "уроках" используются в контейнеры и не используются алгоритмы.
    Это не мои уроки, но моё решение. Предыстория тут Ссылка на начало блога . Я сам только начинаю, и решил воспользоваться тем что предложил Яндекс. А функции типа sort() на этот момент еще не изучаются.
    Запись от acmades размещена 25.07.2017 в 17:02 acmades вне форума
  3. Старый комментарий
    Аватар для Avazart
    Цитата:
    Из опыта программирования в прошлом: немного php, js, c# - совсем немного.
    Цитата:
    Я сам только начинаю, и решил воспользоваться тем что предложил Яндекс.
    А книги читать слабо ?
    Искать решение по интернету фиговый подход к изучению С++.
    И вообще фиговый подход к нормальному изучению чего либо.

    Начинать стоит с книг. Их предостаточно. Некоторые из них уже содержат задания/решения.
    Запись от Avazart размещена 25.07.2017 в 17:44 Avazart вне форума
    Обновил(-а) Avazart 25.07.2017 в 17:47
  4. Старый комментарий
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    А книги читать слабо ?
    Искать решение по интернету фиговый подход к изучению С++.
    И вообще фиговый подход к нормальному изучению чего либо.
    Всё возможно. И ваша точка зрения вполне состоятельна. Но я же не решения ищу, а наоборот задачи. Да и блог создан, чтобы в конце проследить эффективность выбранного пути обучения, а также для адекватной критики моего кода.
    Запись от acmades размещена 25.07.2017 в 17:55 acmades вне форума
  5. Старый комментарий
    Аватар для Avazart
    Цитата:
    а также для адекватной критики моего кода.
    Как я заметил вы не используете функции в своем коде, не стандартные, ни свои.
    Запись от Avazart размещена 25.07.2017 в 22:49 Avazart вне форума
    Обновил(-а) Avazart 25.07.2017 в 22:54
  6. Старый комментарий
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    Как я заметил вы не используете функции в своем коде, не стандартные, ни свои.
    Спасибо, вы абсолютно правы. Это мои первые строчки кода. А о функциях я узнал чуть позже.
    Запись от acmades размещена 26.07.2017 в 02:47 acmades вне форума
  7. Старый комментарий
    Аватар для Avazart
    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
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
     
    using namespace std;
     
    int main()
    {
        string a, b, c;
        vector<string> vs;
        cin >> a >> b >> c;
        vs.push_back(a);
        vs.push_back(b);
        vs.push_back(c);
     
        
        if(!vs.empty())
        {
           cout<< *std::min_element(vs.begin(),vs.end()) <<endl;
        }
     
        return 0;
    }
    или же написать свою ф-цию min_element() и использовать её.
    Запись от Avazart размещена 26.07.2017 в 12:56 Avazart вне форума
    Обновил(-а) Avazart 26.07.2017 в 12:57
  8. Старый комментарий
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    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
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
     
    using namespace std;
     
    int main()
    {
        string a, b, c;
        vector<string> vs;
        cin >> a >> b >> c;
        vs.push_back(a);
        vs.push_back(b);
        vs.push_back(c);
     
        
        if(!vs.empty())
        {
           cout<< *std::min_element(vs.begin(),vs.end()) <<endl;
        }
     
        return 0;
    }
    или же написать свою ф-цию min_element() и использовать её.
    Спасибо, учту в своих изысканиях.
    Запись от acmades размещена 27.07.2017 в 09:36 acmades вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.