C/C++

Прошу помочь с двумя задачами по C++. Есть код моей попытки. Буду рад если напишите проги.

Создайте структуру с именем time. три ее поля, имеющие тип int, будут называться hours, minutes и seconds. напишите программу которая просит пользователя ввести время, в формате часы, минуты и секунды.программа должна хранить время в структурной переменной типа time и выводить количество секунд в веденном времени.

#include <iostream>
using namespace std;
struct time { int hours; int minutes; int seconds; };
int main()
{
setlocale(LC_ALL, "Russian");
time tl;
cout << "Часы: ";
cin >> tl.hours;
cout << "Минуты: ";
cin >> tl.minutes;
cout << "Секунды: ";
cin >> tl.seconds;
long totalsecs = tl.hours*3600 + tl.minutes*60 + tl.seconds;
cout << "Количество секунд: " << totalsecs << endl;
}
Я пытался правда, но ругает на tl. я уже не знаю что я не так делаю.

Используя структуру time, напишите программу, которая получает от пользователя два значения времени в формате 12:59:59, сохраняет их в переменных типа struct time, затем переводит оба значения в секунды, складывает их, переводит сумму в исходный формат, сохраняет его в переменной типа time и выводит полученный результат на экран в формате 12:59:59. Вот тут я даже не начинал, так как не понял первую задачу. Помогите с написанием проги для неё
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
struct Time {
int hours;
int minutes;
int seconds;
Time() : hours(0), minutes(0), seconds(0) {}
Time(int ss) {
while (ss > day) ss -= day;
hours = ss / hour;
minutes = ss / min % min;
seconds = ss % min;
}
Time(const int h, const int m, const int s) : hours(h), minutes(m), seconds(s) {}
Time(const string& t) {
parse(t);
}
int to_seconds()const {
return hours * hour + minutes * min + seconds;
}
private:
vector<string> split(const string& str, char delim) {
stringstream ss(str);
string token;
vector<string> box;
while (getline(ss, token, delim)) box.push_back(token);
return box;
}
string time_hm()const {
string t = hours < ten ? "0" : "";
t += to_string(hours) + ":";
t += minutes < ten ? "0" : "";
t += to_string(minutes);
return t;
}
string time_hms()const {
string t = time_hm() + ":";
t += seconds < ten ? "0" : "";
t += to_string(seconds);
return t;
}
void parse(const string& s) {
auto box = split(s, ':');
hours = stoi(box[0]);
minutes = stoi(box[1]);
seconds = stoi(box[2]);
}
friend istream& operator>>(istream& inp, Time& t) {
string line;
inp >> line;
t.parse(line);
return inp;
}
friend ostream& operator<<(ostream& out, const Time& t) {
return out << t.time_hms();
}
friend Time operator+(const Time& a, const Time& b) {
auto ss = a.to_seconds() + b.to_seconds();
while (ss > day) ss -= day;
Time t(ss);
return t;
}
static const auto day = 86400;
static const auto hour = 3600;
static const auto min = 60;
static const auto ten = 10;
};
int main() {
cout << "Input time 1: ";
Time t1;
cin >> t1;
cout << "Time 1 all seconds: " << t1.to_seconds() << '\n';
cout << "Input time 2: ";
Time t2;
cin >> t2;
cout << "Time 2 all seconds: " << t2.to_seconds() << '\n';
Time t3 = t1 + t2;
cout << "Sum time 1 and time 2: " << t3 << '\n';
cout << "Time 3 all seconds: " << t3.to_seconds() << '\n';
}
Сергей Попов
Сергей Попов
86 004
Лучший ответ
>Я пытался правда, но ругает на tl. я уже не знаю что я не так делаю.
Что значит "ругается"? Не надо очеловечивать компьютеры, они этого страсть как не любят. Сообщение об ошибке какое?
Аян Маманов
Аян Маманов
96 006
Kakhramon Yuldashev main.cpp:7:5: error: expected ‘;’ before ‘tl’
Kakhramon Yuldashev первая работает. вот со второй беда
Компилируется и выполняется без проблем.
Kakhramon Yuldashev ща проверю в Dev
Kakhramon Yuldashev У меня в визуаль не работал. Помоги со второй как там чё там
>24 for >60 for>60
Юрий Петров
Юрий Петров
30 358
сохраняет их в переменных типа struct time, затем переводит оба значения в секунды, складывает их, переводит сумму в исходный формат, сохраняет его в переменной типа time и выводит полученный результат
на пыхе это в две секунды делается на шарпике минуты 2 но вы я вижу тип еще тот досвидания брат
ЕЕ
Естай Есетов
20 993
Массивы, массивов? for >24 for >60 for>60
Kakhramon Yuldashev первая работает. вот со второй беда
Валерий Федотов бесплатное объявление на профи создай рублей за 300