NetWas7s 2022-05-08 21:24 采纳率: 25%
浏览 93
已结题

C++中<<运算符重载问题

【问题描述】

定义一个时间类CTime,分钟和秒钟是其两个私有成员数据。输入一个起始时间和一个结束时间(起始时间早于结束时间),通过运算符重载-(减号),计算这两个时间相隔多少秒钟。说明:这两个时间在同一小时之内,且采用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  <iostream>
using  namespace  std;
#define  N  100

class CTime
{
private:
    int fen,miao;
public:
    void input();
    bool beZero();
    friend ostream & operator<<(ostream& out,const CTime& t);
    CTime operator-(CTime &b) const;
};
void CTime::input()
{
    while(1)
    {
        cin>>fen>>miao;
        if(fen>=0&&fen<=59&&miao>=0&&miao<=59)
            break;
        else
            cout<<"error"<<endl;
    }
}
bool CTime::beZero()
{
    if(fen==0&&miao==0)
    {
        return 1;
    }
    else
        return 0;
}
ostream & operator<<(ostream& out,const CTime& t)
{
    out<<60*t.fen+t.miao;
    return out;
}
CTime CTime::operator-(CTime &b) const
{
    CTime out;
    if(fen>=b.fen)
        out.fen=fen-b.fen;
    else
        out.fen=b.fen-fen;
    if(miao>=b.miao)
        out.miao=miao-b.miao;
    else
        out.miao=b.miao-miao;
    return out;
}
int    main()//main函数是答题系统已经给定的,无法修改
{
        CTime  time[N];
        int  count=-1;
        do
        {
                count++;
                time[2*count].input();
                time[2*count+1].input();
        }while(!(time[2*count].beZero()&&time[2*count+1].beZero()));
        for(int  i=0;i<count;i++)
        {
                cout<<time[2*i+1]-time[2*i]<<endl;
        }
        return    0;
}

题目要求00 00,00 00那一项不输出,但是总会多出一个换行导致出错
如图:

img

有无董哥知道怎么达到预定结果
PS:main函数是答题系统固定的,无法修改

  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-05-08 21:56
    关注

    你第二个测试用例结果错了,应该不是换行的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月21日
  • 已采纳回答 5月13日
  • 创建了问题 5月8日

悬赏问题

  • ¥20 全书网Java爬取数据
  • ¥15 SAP HANA SQL Script 。SUM OVER 怎么加where
  • ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
  • ¥100 微信小程序跑脚本授权的问题
  • ¥60 为什么使用python对地震数据进行umap降维后,数据成图会出现不连续的现象
  • ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
  • ¥15 STM32串口接收问题
  • ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接
  • ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
  • ¥15 MATLAB和mosek的求解问题