Задача C++: Помогите с 9 тестом
Menu
Дата публикации: 05.06.2025

Задача C++: Помогите с 9 тестом


Содержимое статьи:

Исходный код:

#include <iostream>
using namespace std;
int main() {
string input;
cin >> input;
int colonPos = input.find(':');
int a = stoi(input.substr(0, colonPos));
int b = stoi(input.substr(colonPos + 1));
cout << min(a, b) << endl;
return 0;
}

9 тест: 99:0 Результат: 0 Ожидаемый результат: 99 Решение: Проблема возникает из-за того, что ввод не проверяется на наличие недопустимых символов или формата. В последнем тесте 99:0 второй символ - 9, а не цифра. Это приводит к ошибке при попытке преобразовать его в целое число int с помощью stoi.
Чтобы решить эту проблему, необходимо сначала проверить ввод на наличие допустимых символов и формата. Это можно сделать с помощью регулярных выражений:

#include <iostream>
#include <regex>
using namespace std;
int main() {
string input;
regex timeRegex("([0-9]+):([0-9]+)");
cin >> input;
// Проверяем ввод на допустимость
if (!regex_match(input, timeRegex)) {
cout << "Недопустимый формат ввода!\n";
return 1; // Или обработать ошибку другим способом
}
int colonPos = input.find(':');
int a = stoi(input.substr(0, colonPos));
int b = stoi(input.substr(colonPos + 1));
cout << min(a, b) << endl;
return 0;
}

Заявка на техническое обслуживание ККТ

 

×
Заявка на регистрацию ККТ

 

×
Заявка на замену ЭКЛЗ

 

×
Заказать обратный звонок

 

×
  TOP