С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 145

Ошибка в задаче

14.02.2014, 23:05. Показов 1368. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заданы моменты начала и конца некоторого промежудка времени в часах минутах и секундах ( в пределах одних суток) Найти продолжительность этого промежудка в тех же единицах измерения.

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
 
int main(int argc, char*argv[]){
    setlocale(LC_ALL, "Russian");
    
    int min, sec, hours, min_1, sec_1, hours_1, m, s, h;
 
    cout << "Введите начальный интервал" << endl;
 
    cout << "Введите время в часах -> ";
    cin >> hours;
 
    cout << "Введите время в минутах -> ";
    cin >> min;
 
    cout << "Введите время в секундах -> ";
    cin >> sec;
 
    cout << endl;
    cout << "==================================";
    cout << endl << endl;
 
    cout << "Введите конечный интервал" << endl;
 
    cout << "Введите время в часах -> ";
    cin >> hours_1;
 
    cout << "Введите время в минутах -> ";
    cin >> min_1;
 
    cout << "Введите время в секундах -> ";
    cin >> sec_1;
 
    m = min_1 - min;
    s = sec_1 - sec;
    h = hours_1 - hours;
 
    cout << endl;
    cout << "==================================";
    cout << endl << endl;
 
    if (m < 0) {
        m = m + 60;
        min_1 = min_1 - 1;
    }
 
    if (s < 0) {
        s = s + 60;
        sec_1 = sec_1 - 1;
    }
    
    if (h < 0) h = h + 24;
 
    cout << "Продолжительность: " << endl;
    cout << "В часах ->" << h << endl;
    cout << "В минутах ->" << m << endl;
    cout << "В секундах ->" << s << endl;
 
return 0;
}
Если первые величины такие 23 часа 30 минут 55 секунд, а вторые 1 час 7 минут 6 секунд то результат будет 2 часа 36 минут 11 секунд, а нужно что бы было так 1 часа 36 минут 11 секунд, что то с часами
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2014, 23:05
Ответы с готовыми решениями:

Ошибка в задаче на ряды
1.При некоторых заданных x и N, определяемых вводом, вычислить сумму N слагаемых заданного вида. 2.При некоторых заданных x и Е,...

Одна ошибка в задаче
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между...

ошибка в задаче по программированию
При решении задачи была выявлена ошибка, идей , как ее решить, нет. Прошу помочь. описание ошибки: Возникло необработанное исключение по...

3
Знаток
156 / 156 / 185
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
14.02.2014, 23:32
Лучший ответ Сообщение было отмечено PriZrаK как решение

Решение

Ошибка здесь:
Цитата Сообщение от PriZrаK Посмотреть сообщение
if (m < 0) {
* * * * m = m + 60;
* * * * min_1 = min_1 - 1;
* * }
if (s < 0) {
* * * * s = s + 60;
* * * * sec_1 = sec_1 - 1;
* * }
if (h < 0) h = h + 24;
Попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  if (s < 0) {
m--;
        s = s + 60;
        sec_1 = sec_1 - 1;
    }
  
if (m < 0) {
h--
        m = m + 60;
        min_1 = min_1 - 1;
    }
 
    
    if (h < 0) h = h + 24;
1
-27 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 145
15.02.2014, 18:40  [ТС]
Цитата Сообщение от Amandosov Посмотреть сообщение
Ошибка здесь:

Попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  if (s < 0) {
m--;
        s = s + 60;
        sec_1 = sec_1 - 1;
    }
  
if (m < 0) {
h--
        m = m + 60;
        min_1 = min_1 - 1;
    }
 
    
    if (h < 0) h = h + 24;
реально ли решить задачу без использования ветвлений?
0
 Аватар для stikkas
20 / 20 / 8
Регистрация: 26.01.2014
Сообщений: 56
15.02.2014, 22:36
а нельзя начало и конец привести к секундам
((hours * min_per_hour + mins ) * sec_per_min + secs) потом произвести необходимые действия (в данном случае вычитание) а потом результат приветсти к нужному виду:
hours = res_secs / sec_per_min / min_per_hour
mins = res_secs / sec_per_min % min_per_hour
secs = res_secs % sec_per_min
?

Добавлено через 16 минут
В условии задачи стоит оговорка что в пределах одних суток, т.е. с 00:00:00 до 23:59:59
Если без учета этой оговорки, то перед вычитанием сравнить первую величину и вторую,
если вторая меньше, тогда найти разницу между 24:00:00 и стартом, и прибавить вторую точку (конец).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int hStart, mStart, sStart, hEnd, mEnd, sEnd;
// here comes initialization
int startSecs = (hStart * 60 + mStart) * 60 + sStart;
int endSecs = (hEnd * 60 + mEnd) * 60 + sEnd;
int resSecs;
if (startSecs < endSecs) {
  resSecs = endSecs - startSecs;
} else {
  resSecs = 24 * 60 * 60 - startSecs + endSecs;
}
 
int hDist, mDist, sDist;
hDist = resSesc / 60 / 60;
mDist = resSecs / 60 % 60;
sDist = resSecs % 60;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2014, 22:36
Помогаю со студенческими работами здесь

ошибка в задаче на палиндром
Ребят помогите пожалуйста. Задачка найти палиндром в массиве. Писал-писал и в итоге в ф-ии последнее условие if (arr_t1==arr_t2) постоянно...

ошибка в задаче с классом
для 2х матриц (A, B) определить кол-во строк, сумма элементов которых положительна ошибка в строке ввода матрицы и звучит как :...

Ошибка в задаче про массивы
Написал прогу,строго не судите,но какой то косяк здесь не знаю даже где,она должна Найти сумму элементов массива, которые находятся ...

Ошибка в задаче о восьми ферзях
Суть задачи заключается в том, что нужно суметь расставить на шахматной доске (8 х 8) восемь ферзей так, чтобы они не находились под боем...

Ошибка в задаче не выводит на экран кое что
Задача с классами, надо чтоб было 5 функций, они есть вот. А компилятор выводит только сокращение дробей, а надо чтоб и наибольший...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru