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

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日

悬赏问题

  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?