Загрузка...

Как сделать чтобы программа считывала ":"

Тема в разделе C/C++ создана пользователем FLESH_inactive601692 25 окт 2019. 312 просмотров

Загрузка...
  1. FLESH_inactive601692
    FLESH_inactive601692 Автор темы 25 окт 2019 Заблокирован(а) 335 23 сен 2018
    Решаю я тут задачки и наткнулся на эту https://acmp.ru/index.asp?main=task&id_task=331
    Вот уже второй день голову себе долблю не могу понять как сделать чтобы оно считывало ":" или чтобы всё что дальше ":" читала
     
  2. Fransy
    Fransy 26 окт 2019 EVERYBODY HERE HATES YOU 26 28 мар 2018
    Делал сам, как я понял у тебя проблема была с 11 тестом?)))
    Код
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;

    int main()
    {
    vector<string> arr;
    string str = "";
    int addTimeF = 0;
    int addTimeS = 0;
    string delim(":");
    size_t prev = 0;
    size_t next;
    size_t delta = delim.length();
    int maxH = 24;
    int maxM = 60;
    int outH, outM;


    cin >> str >> addTimeF >> addTimeS;

    while ((next = str.find(delim, prev)) != string::npos) {
    //Отладка-start
    string tmp = str.substr(prev, next - prev);
    //Отладка-end
    arr.push_back(str.substr(prev, next - prev));
    prev = next + delta;
    }
    //Отладка-start
    string tmp = str.substr(prev);
    //Отладка-end
    arr.push_back(str.substr(prev));

    int A = atoi(arr[0].c_str());
    int B = atoi(arr[1].c_str());

    outH = A + addTimeF;
    outM = B + addTimeS;



    while (outM >= maxM) {
    outM -= maxM;
    outH += 1;
    }
    while (outH >= maxH) {
    outH -= maxH;
    }

    if (outH < 10) {
    cout << 0 << outH;
    }
    else {
    cout << outH;
    }
    cout << ":";
    if (outM < 10) {
    cout << 0 << outM;
    }
    else {
    cout << outM;
    }


    return 0;
    }
     
  3. Checkerchin
    Checkerchin 27 окт 2019 178 16 апр 2017
    Задание по ссылке не смотрел, но в чем проблема считывать полностью и сплитить?
    Используешь find и substr
     
  4. Jus1x_tv
    Jus1x_tv 25 ноя 2019 6 14 ноя 2019
    Зачем ломать голову. Жрем время отправление чаровым массивом. arr[0] arr[1] - часы. arr[3] arr[4] - минуты. Преобразуем к int/short и делаем банальное сложение. Выводить можно тем же чаровым массивом(для экономии памяти, загоняя в часы результат суммы часов (С проверкой на 24 часа) и в минуты результат сложения минут с проверкой на 60 минут).
     
Top