Page 18,自立题二

    这题有当时有点悲剧,因为初学编程思想还不能按照计算机的思路,但是还好有提示啦和上机课辅导老师~请教了一下就没问题了~


【问题】

    编写程序,当输入两个时刻(如按照“时 分 秒”格式进行输入)以后,求出这两个时刻的时间差(按秒计算)并打印到屏幕上。

【提示】

1.通过cin输入的数据要判断合法性。即 [时] 应大于等于0小于等于23,分秒 应大于等于0,小于等于59;

2.时间差计算方法:计算出两个时刻各自距离0时0分0秒的总秒数,然后求出两者差的绝对值。

3.用到求绝对值函数abs时,需要include <math.h>  因为学校换成了VS,所以应该是<cmath>

【代码】

/*************
 * 7sDream 13.09.25
 * P18 自立题2
 ************/

#include <iostream>
#include <windows.h>
#include <cmath>

using namespace std;

int main()
{   //======定义函数========
    bool Check_Input(int, int, int);
    //======定义变量========
    int hour1,minute1,second1;
    int hour2,minute2,second2;
    int total1,total2,X;
    //======输入数据========
    cout<<"请输入第一个时刻【时 分 秒】:";
    cin>>hour1>>minute1>>second1;
    cout<<"请输入第二个时刻【时 分 秒】:";
    cin>>hour2>>minute2>>second2;
    //=======计  算=========
    if(Check_Input(hour1, 0, 23) && Check_Input(hour2, 0, 23) && Check_Input(minute1, 0, 59) && Check_Input(minute2, 0, 59) && Check_Input(second1, 0, 59) && Check_Input(second2, 0, 59))
    {
        total1 = hour1 * 60 * 60 + minute1 * 60 + second1;
        total2 = hour2 * 60 * 60 + minute2 * 60 + second2;
        X = abs(total1 - total2 );
        //=======输	出==========
        cout<<"时间差是"<<X<<"秒";
    }else{
        cout<<"时间格式不对!!";
    }
    
    system("pause");
    
    return 0;
}

bool Check_Input(int val, int min, int max)
{
    if(val >= min && val <= max)
    {
        return true;
    }
    else
    {
        return false;
    }
}

/**********
 * 7sDream
 *********/
【结果】


问了老师一下怎么判断合法性,老师乖乖的教了我用函数0.0 说可以看上去简洁一点  所以我好像在还没教函数的时候就一直在用函数了 谢谢上机课老师~~~

那个Check_Input函数就是判断合法性的。

那个提示里的加粗部分,求差的方法TUT我是想不出来,这方法真简单!在以后的作业里也用过,真好用。

然后这节课还学到了一个cmath,我就google了一下它里面有哪些函数,表示收获很大哇嘎嘎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值