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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 5.00
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Количество секунд в количество суток, часов, минут, секунд - C++

13.08.2013, 14:02. Просмотров 4099. Ответов 9
Метки нет (Все метки)

Кликните здесь для просмотра всего текста
Напишите программу, которая выдавала бы запрос на ввод количества секунд в
виде целого значения ( используйте тип long) , и затем отображала бы эквивалентное
значение в сутках, часах, минутах и секундах. Для представления количества
часов в сутках, количества минут в часе и количества секунд в минуте используйте
символьные константы. Пример результата выполнения программы
выглядит следующим образом:
Enter the number of secоnds : 31600000
31600000 secоnds = 365 days , 46 minutes , 40 secоnds


вот мой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
const int sec_in_min = 60;
const int sec_in_hour = 3600;
const int sec_in_day = 3600*24;
 
int main()
{
    setlocale(0,"russian");
    cout << "Введите значение в секундах: ";
    long sec;
    cin >> sec;
    short final_sec, final_hour, final_min, final_day; //значения после преобразования
    final_hour = sec/sec_in_hour;   // вот это получается правильно
    final_min = sec/(final_hour);
    final_sec = sec%(final_min*sec_in_min);
    cout << final_hour << " " << final_min << " " << final_sec;
    system("pause");
    return 0;
}
Решил попробовать решить пока только с часами, минутами и секундами, все равно не получается. Правильно получается только часы. Помогите! С меня спасибка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2013, 14:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Количество секунд в количество суток, часов, минут, секунд (C++):

Сделать так, чтобы на выходе показывало полное количество часов, остаток минут и потом остаток секунд - C++
Помогите, пожалуйста, сделать так, чтобы на выходе показывало полное количество часов, остаток минут и потом остаток секунд: /*...

Вычислить количество секунд с начала суток - C++
Дано количество часов, минут и секунд с начала суток. Вычислить количество секунд с начала суток.

Найти количество минут и секунд ,прошедших с начала последнего часа - C++
С начала суток прошло N секунд (N-целое).Найти количество минут и секунд ,прошедших с начала последнего часа . помогите решить

Сколько человек прожил месяцев, дней, часов, минут, секунд? - C++
Написать программу, которая по введённому возрасту в годах (например, 18.5 лет) выводит сколько человек прожил месяцев, дней, часов, минут,...

Какое время будут показывать часы через р часов q минут r секунд? - C++
Текущее показание электронных часов: h часов (0 ≤ h ≤ 23) m минут (0 ≤ m ≤ 59) s секунд (0≤ k ≤ 59). Какое время будут показывать часы...

Надо чтобы пользователь вводил время только в секундах,вместо часов,минут и секунд - C++
Надо чтобы пользователь вводил время только в секундах,вместо часов,минут и секунд,заранее спасибо #include &lt;iostream&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
13.08.2013, 14:40 #2
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
25
26
#include <iostream>
using namespace std;
 
const int sec_in_min = 60;
const int sec_in_hour = 3600;
const int sec_in_day = 3600*24;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    long sec;
 
    cout << "Введите количество секунд: ";
    cin >> sec;
 
    cout << (sec / sec_in_day > 0 ? sec / sec_in_day : 0 ) << " дней ";
    sec %= sec_in_day;
    cout << (sec / sec_in_hour > 0 ? sec / sec_in_hour : 0 ) << " часов ";
    sec %= sec_in_hour;
    cout << (sec / sec_in_min > 0 ? sec / sec_in_min : 0 ) << " минут ";
    sec %= sec_in_min;
    cout << sec << " секунд" << endl;
 
    system("pause");
    return 0;
}
2
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
13.08.2013, 14:46  [ТС] #3
Цитата Сообщение от Мимино Посмотреть сообщение
C++
1
2
3
4
5
6
7
    cout << (sec / sec_in_day > 0 ? sec / sec_in_day : 0 ) << " дней ";
    sec %= sec_in_day;
    cout << (sec / sec_in_hour > 0 ? sec / sec_in_hour : 0 ) << " часов ";
    sec %= sec_in_hour;
    cout << (sec / sec_in_min > 0 ? sec / sec_in_min : 0 ) << " минут ";
    sec %= sec_in_min;
    cout << sec << " секунд" << endl;
Объясни пожалуйста вот этот момент, я ничего не понял
0
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
13.08.2013, 14:50 #4
C++
1
2
3
4
5
6
cout << (sec / sec_in_day > 0 ? sec / sec_in_day : 0 ) << " дней "; // если секунд ввели больше, чем секунд в сутках, то выведет количество дней, иначе 0 (вместо if/else используется  ?: )
    sec %= sec_in_day; // из общего количества секунд убираем количество секунд свыше суток. Дальше аналогично
    cout << (sec / sec_in_hour > 0 ? sec / sec_in_hour : 0 ) << " часов ";
    sec %= sec_in_hour;
    cout << (sec / sec_in_min > 0 ? sec / sec_in_min : 0 ) << " минут ";
    sec %= sec_in_min;
0
Aleator
65 / 66 / 3
Регистрация: 04.05.2011
Сообщений: 1,210
13.08.2013, 14:56 #5
В задании говориться ещё и о днях:
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
25
int main()
{
    setlocale(0,"russian");
    cout << "Введите значение в секундах: ";
    long sec;
    cin >> sec;
    short final_sec, final_hour, final_min, final_day; //значения после преобразования
    final_sec = final_hour = final_min = final_day =0;
 
    if (sec >= sec_in_day)                   // считаем дни
        final_day = sec/sec_in_day;
    sec = sec - (final_day * sec_in_day);
 
    if (sec >= sec_in_hour)
        final_hour = sec/sec_in_hour;       // считаем часы
    sec = sec-(final_hour*sec_in_hour);
 
    if (sec >= sec_in_min)
        final_min = sec/sec_in_min;         // считаем минуты
    final_sec = sec-(final_min*sec_in_min);
 
    cout << final_day << " "<< final_hour << " " << final_min << " " << final_sec << "\n";
    system("pause");
    return 0;
}
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6467 / 3115 / 306
Регистрация: 04.12.2011
Сообщений: 8,589
Записей в блоге: 4
13.08.2013, 15:02 #6
Как вариант:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
using namespace std;
class SeksToDaysMinSec{
unsigned long seks;
static const unsigned long seks_in_min_and_min_in_h;
static const unsigned long min_in_h;
static const unsigned long h_day;
public:
SeksToDaysMinSec(unsigned long seks_)
:seks(seks_){}
void getDataFormat();
};
const unsigned long SeksToDaysMinSec::seks_in_min_and_min_in_h=60;
const unsigned long SeksToDaysMinSec::h_day=24;
 
void 
SeksToDaysMinSec::
getDataFormat()
{
unsigned days=0;
unsigned short hs=0, mins=0, secs=0;
 
days = seks /(seks_in_min_and_min_in_h * seks_in_min_and_min_in_h * h_day);
unsigned long seksTmp = seks - days * seks_in_min_and_min_in_h * seks_in_min_and_min_in_h * h_day;
cout<<seksTmp<<endl;
hs = seksTmp / (seks_in_min_and_min_in_h * seks_in_min_and_min_in_h);
seksTmp -=  hs * seks_in_min_and_min_in_h * seks_in_min_and_min_in_h;
mins = seksTmp / seks_in_min_and_min_in_h;
seksTmp -=  mins * seks_in_min_and_min_in_h;
secs = seksTmp;
cout<<days<<" days "<< hs << "houres " << mins << " minutes " << secs << " seconds "<<endl;
}
int main() {
cout<<"Enter seconds, please ";
unsigned long seks_;
cin>>seks_;
SeksToDaysMinSec ascoca(seks_);
ascoca.getDataFormat();
cout<<endl;
cin.ignore();
cin.get();   
return 0;
}
1
koldya
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 26
14.08.2013, 00:14 #7
Привет, я какраз изучаю эту же книгу и на том же месте :)
И принимаю во внимание то, что ветвоение и функции еще не изучались в книге, я вод так решил задачу:
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>
const int day_in_year = 365;
const int hour_in_day = 24;
const int min_in_hour = 60;
const int sec_in_sec = 60;
 
int main()
{
    using namespace std;
    setlocale(LC_ALL, "Russian");
 
    cout << "Введите количество секунд: ";
    long long second;
    cin >> second;
    int days = 0, hour = 0, min = 0, sec = 0;
    int ostatok;
    days = second / (hour_in_day * min_in_hour * sec_in_sec);
    hour = (second % (hour_in_day * min_in_hour * sec_in_sec)) / (min_in_hour * sec_in_sec);
    min = (second % (hour_in_day * min_in_hour * sec_in_sec)) % (min_in_hour * sec_in_sec) / sec_in_sec;
    sec = (second % (hour_in_day * min_in_hour * sec_in_sec)) % (min_in_hour * sec_in_sec) % sec_in_sec;
    cout << second << " секунд = " << days << " дней, " << hour << " часов, " << min << " минут, " << sec << " секунд";
         
    return 0;
}
0
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
14.08.2013, 01:38 #8
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
 
int main()
{
    system("chcp 1251");
    system("title Chapter 3 Ex.4");
 
    const int Seconds_in_minutes = 60;
    const int Seconds_in_hours = 60 * Seconds_in_minutes;
    const int Seconds_in_days = 24 * Seconds_in_hours;
 
    cout << "Enter the number of seconds: ";
    long long total_seconds;
    cin >> total_seconds;
 
    cout << total_seconds << " seconds = ";
 
    int days,hours,minutes,seconds;
 
    days = total_seconds / Seconds_in_days;
    total_seconds = total_seconds % Seconds_in_days;
    hours = total_seconds / Seconds_in_hours;
    total_seconds = total_seconds % Seconds_in_hours;
    minutes = total_seconds / Seconds_in_minutes;
    total_seconds = total_seconds % Seconds_in_minutes;
    seconds = total_seconds;
 
    cout << days << " days, "
        << hours << " hours, "
        << minutes << " minutes, "
        << seconds << " seconds."
        << endl;
    
 
    system("PAUSE");
    return 0;
}
0
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
14.08.2013, 07:30 #9
Почему бы не использовать <ctime>?
И, судя по примеру, значения, равные 0, не отображаются (в примере пропущены часы).
0
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
14.08.2013, 11:27 #10
Цитата Сообщение от Бендерродригез Посмотреть сообщение
Почему бы не использовать <ctime>?
И, судя по примеру, значения, равные 0, не отображаются (в примере пропущены часы).
Задача из книжки и необходимо использовать то, что было изучено, а это переменные и базовые операции.
http://qvazi-s.narod.ru/img/consolech3ex4.png
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2013, 11:27
Привет! Вот еще темы с ответами:

Создайте класс time, содержащий три поля, предназначенные для хранения часов, минут и секунд - C++
Создайте класс с именем time, содержащий три поля типа int, предназначенные для хранения часов, минут и секунд. Один из конструкторов...

Программа должна писать сколько лет, месяцев, дней, часов, минут, секунд прожил человек - C++
Программа должна писать сколько лет,месяцев,дней,часов,минут,секунд прожил человек Вводится только число,год и месяц. Только точно, а не...

C++ Идёт k-я секунда суток. Определите, сколько целых часов h и целых минут m прошло с начала суток - C++
Идёт k-я секунда суток. Определите, сколько целых часов h и целых минут m прошло с начала суток. Например, если k=13257=33600+4060+57,...

количество минут до окончания суток - C++
Доброго времени суток, уважаемые ;) Есть такое вот задание: Определить функцию, возвращающую количество минут до окончания суток....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.08.2013, 11:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru