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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 5.00
CHELOVEKPAUK
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
13.08.2013, 14:02     Количество секунд в количество суток, часов, минут, секунд #1
Кликните здесь для просмотра всего текста
Напишите программу, которая выдавала бы запрос на ввод количества секунд в
виде целого значения ( используйте тип 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;
}
Решил попробовать решить пока только с часами, минутами и секундами, все равно не получается. Правильно получается только часы. Помогите! С меня спасибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мимино
 Аватар для Мимино
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;
}
CHELOVEKPAUK
 Аватар для 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;
Объясни пожалуйста вот этот момент, я ничего не понял
Мимино
 Аватар для Мимино
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;
Aleator
 Аватар для Aleator
65 / 66 / 3
Регистрация: 04.05.2011
Сообщений: 1,151
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;
}
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,733
Записей в блоге: 3
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;
}
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;
}
Hugra
 Аватар для 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;
}
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
14.08.2013, 07:30     Количество секунд в количество суток, часов, минут, секунд #9
Почему бы не использовать <ctime>?
И, судя по примеру, значения, равные 0, не отображаются (в примере пропущены часы).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2013, 11:27     Количество секунд в количество суток, часов, минут, секунд
Еще ссылки по теме:

Программа должна писать сколько лет, месяцев, дней, часов, минут, секунд прожил человек C++
Добавить к структуре указанное количество секунд C++
C++ Создайте класс time, содержащий три поля, предназначенные для хранения часов, минут и секунд

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

Или воспользуйтесь поиском по форуму:
Hugra
 Аватар для 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
Yandex
Объявления
14.08.2013, 11:27     Количество секунд в количество суток, часов, минут, секунд
Ответ Создать тему
Опции темы

Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru