Создайте структуру с именем 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. Вот тут я даже не начинал, так как не понял первую задачу. Помогите с написанием проги для неё
C/C++
Прошу помочь с двумя задачами по C++. Есть код моей попытки. Буду рад если напишите проги.
#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';
}
#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';
}
>Я пытался правда, но ругает на tl. я уже не знаю что я не так делаю.
Что значит "ругается"? Не надо очеловечивать компьютеры, они этого страсть как не любят. Сообщение об ошибке какое?
Что значит "ругается"? Не надо очеловечивать компьютеры, они этого страсть как не любят. Сообщение об ошибке какое?
Kakhramon Yuldashev
main.cpp:7:5: error: expected ‘;’ before ‘tl’
Kakhramon Yuldashev
первая работает. вот со второй беда
Компилируется и выполняется без проблем.
Kakhramon Yuldashev
ща проверю в Dev
Kakhramon Yuldashev
У меня в визуаль не работал. Помоги со второй как там чё там
>24 for >60 for>60
сохраняет их в переменных типа struct time, затем переводит оба значения в секунды, складывает их, переводит сумму в исходный формат, сохраняет его в переменной типа time и выводит полученный результат
на пыхе это в две секунды делается на шарпике минуты 2 но вы я вижу тип еще тот досвидания брат
на пыхе это в две секунды делается на шарпике минуты 2 но вы я вижу тип еще тот досвидания брат
Массивы, массивов? for >24 for >60 for>60
Kakhramon Yuldashev
первая работает. вот со второй беда
Валерий Федотов
бесплатное объявление на профи создай рублей за 300
Похожие вопросы
- Помогите пожалуйста с задачей на c++, если кто-нибудь захочет помочь.
- Помогите пожалуйста решить задачу на C ИЛИ C#
- Всем привет. Помогите пожалуйста с задачей на C++
- Помогите пожалуйста с задачей на C++
- Помогите пожалуйста с задачей на C++
- Помогите пожалуйста решить задачу на C++
- Написать код для задачи на C++
- Задача по c++ на векторы. Часть программы написана. Нужны правки.
- Прошу помогите написать код на c++, нужно сдать сегодня ?
- ПРОШУ, ПОМОГИТЕ НАПИСАТЬ КОД C++