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

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日

悬赏问题

  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人