7-5 分钟秒钟的时间相减 (10 分)

7-5 分钟秒钟的时间相减 (10 分)

题目描述: 定义一个时间类,分钟和秒钟是其两个私有成员数据。输入一个起始时间和一个结束时间(起始时间早于结束时间),通过运算符重载-(减号),计算这两个时间相隔多少秒钟。说明:这两个时间在同一小时之内,且采用60分钟60秒钟的计时分式,即从00:00-59:59。

   输入格式: 测试输入包含若干测试用例,每个测试用例占一行。每个测试用例包括四个数,每个数之间用空格间隔,每个数都由两位数字组成,第一个数和第二个数分别表示起始时间的分钟和秒钟,第三个数和第四个数分别表示结束时间的分钟和秒钟。当读入一个测试用例是00 00 00 00时输入结束,相应的结果不要输出。

   输出格式:对每个测试用例输出一行。输出一个数即可,表示两者之间间隔的秒钟数。

   输入样例:

   12 11 12 58

   00 13 16 00

   09 07 23 59

   00 00 00 00

   输出样例:

   47

   947

   892

 
#include 
 
using namespace std;
 
class Time
{
	private :
		int begin;int end;
	public:
		Time(){
		}
		Time(int a,int b):begin(a),end(b){
		}
		Time operator - (const Time &t){
		       int a,b;
			if(this->endend-t.end;
				b=this->begin-1-t.begin;
				Time time(b,a);
				return time;
			}
			else{
				a=this->end-t.end;
				b=this->begin-t.begin;	
				Time time(b,a);
				return time;
			}
		}
		void show(){
			printf("%d\n",begin*60+end) ;
		}
};
int main()
{
	int a,b,c,d;
	scanf("%d %d %d %d",&a,&b,&c,&d);
	while(!(a==00&&b==00&&c==00&&d==00))
    {
   	Time test1(a,b);
   	Time test2(c,d);
   	Time t;t=test2-test1;
   	t.show();
	scanf("%d %d %d %d",&a,&b,&c,&d);
   }
    return 0;
    
}

7-5 分钟秒钟的时间相减 (10 分)_第1张图片

 这个题折磨了谷雨好久,还好过了。

while(!(a==00&&b==00&&c==00&&d==00))这个地方,需要整体再加一个括号,否则!会与第一个a==0结合而失效。

你可能感兴趣的:(C++,PTA,c++)