作者mrhuangjt (无)
看板PLT
标题Re: [问题] C的基础小问题~ 请帮忙~
时间Sun Nov 8 01:15:14 2009
※ 引述《wefgcv (green)》之铭言:
: 题目 : 计算两个时间 (时:分:秒) 的间隔秒数
: (先说这不是作业 只是自我的小练习)
: 程式我已经写好了 可是不太满意 觉得程式写的太落落长
: 所以想请问一下 有没有更好的写法 可以有同样的功能 但程式很简洁的呢??
: (第一次发问 不清楚在这版发问恰当与否 若不恰当请告知 我会自D的)
: 我的程式码如下 :
: int h1, m1, s1, h2, m2, s2, h, m, s, t;
: printf("Please input first hour :");
: scanf("%d", &h1);
: printf("Please input first minute :");
: scanf("%d", &m1);
: printf("Please input first second :");
: scanf("%d", &s1);
: printf("\nPlease input second hour :");
: scanf("%d", &h2);
: printf("Please input second minute :");
: scanf("%d", &m2);
: printf("Please input second second :");
: scanf("%d", &s2);
: printf("\n第一个输入时间为: %d时 : %d分 : %d秒\n", h1, m1, s1);
: printf("第二个输入时间为: %d时 : %d分 : %d秒\n", h2, m2, s2);
: h = h1 - h2;
: m = m1 - m2;
: s = s1 - s2;
: h = abs(h);
: m = abs(m);
: s = abs(s);
: t = h * 3600 + m * 60 + s;
: printf("\n两个时间间隔秒数为: %d\n", t);
前面输入时间的语法应该可以这样简化:
printf("Please input first time:");
scanf("%d %d %d", &h1, &m1, &s1);
printf("\nPlease input second time:");
scanf("%d %d %d", &h2, &m2, &s2);
中间要减少行数的话,可以这样写:
h = abs(h1 - h2);
m = abs(m1 - m2);
s = abs(s1 - s2);
不过如果要让程式码更短的话,可以找看看Windows有没有计算时间差距的API
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.150.17