Написать функцию для вычисления интервала времени в секундах между двумя моментами, находящимися внутри двенадцатичасового цикла - C (СИ)
Формулировка задачи:
Напишите функцию, которая воспринимает как три целых аргумента (часы, минуты и секунды) и возвращает количество секунд, прошедших со времени, когда часы в последний раз показали 12. Используйте эту функцию для вычисления интервала времени в секундах между двумя моментами, находящимися внутри двенадцатичасового цикла.
такой вариант программы не запускается. Что не так?
#include <stdio.h> #include <windows.h> int seconds(int chas, int min,int sec); int main() { int a1,b1,c1,a2,b2,c2,z; printf("Введите 2 момента времени 3 числами (часы минуты секунды 1 момента, а потом 2ого)"); scanf("%d%d%d",&a1,&b1,&c1); scanf("%d%d%d",&a2,&b2,&c2); z=seconds(a1,b1,c1)-seconds(a2,b2,c2); if (z<0) z=-z; printf("Между ними прошло %d часов %d минут и %d секунд",z/3600,(z%3600)/60,z%60); system("PAUSE"); return 0; } int seconds(int chas, int min,int sec) { if (chas>=12) chas=chas-12; return (chas*3600+min*60+sec); }
Решение задачи: «Написать функцию для вычисления интервала времени в секундах между двумя моментами, находящимися внутри двенадцатичасового цикла»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct { unsigned hour; unsigned min; unsigned sec; } Time; int getTime(FILE* stream, Time* time) { return (fscanf(stream, "%u:%u:%u", &time->hour, &time->min, &time->sec) == 3); } unsigned getSeconds(const Time* time) { return time->sec + (time->min * 60) + ((time->hour % 12) * 60 * 60); } unsigned diffTime(const Time* first, const Time* second) { unsigned tmFirst = getSeconds(first); unsigned tmSecond = getSeconds(second); return (tmFirst < tmSecond) ? (tmSecond - tmFirst) : (tmFirst - tmSecond); } int main() { Time first, second; printf("input first and second time (h:m:s): "); if (getTime(stdin, &first) && getTime(stdin, &second)) { fprintf(stdout, "seconds = %u\n", diffTime(&first, &second)); } else { fprintf(stderr, "error input ...\n"); } system("pause"); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д