分别输入小时和分钟,得到形如 9:28

本文介绍了一个使用C++编写的简单程序,该程序通过用户输入小时和分钟来显示时间。程序利用了<iostream>库,并使用了标准命名空间std。通过定义一个名为time的函数来实现时间的格式化输出。

#include <iostream>

using namespace std;

void time(int h,int m)
{
 cout<<"Time: "<<h<<":"<<m<<endl;
}

int main()
{
 cout<<"Enter the number of hours: ";
 int i,j;
 cin>>i;
 cout<<"Enter the number of hours: ";
 cin>>j;
 time(i,j);
 return 0;

}

(循环完)背景:钟面上的时针针之间的夹角总是在 0 度~ 359 度之间。举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度。本题要解决的是计算 0:00 到 12:00之间任意一个时间的夹角。 输入:要求输入必须为 小时h分钟m的格式,如12h00m, 5h43m等,其他形式的输入都不接收,如 12,00 或5h43输入都不被接收,而且需要对“小时分钟”进行数值有效判断(小时在[0,12],分钟在[0.60]之间),不满足以上要求时,需要重新输入。 (测试例均满足要求) 在程序中首先打印:Please input time(e.g: 5h43m),然后输入时间。 格式为: "Please input time(e.g: 5h43m)\n" "%d%c%d%c" 输出:对应每组测试数据,用常用格式显示时间以及这个时候时针针间的最小夹角,精确到小数点后一位。 格式为: "At %d:%02d the angle is %.1f degrees.\n" 如: 输入 12h00m 时,输出 At 12:00 the angle is 0.0 degrees. 输入 5h43m 时,输出 At 5:43 the angle is 86.5 degrees. 输入5h5m 时,输出 At 5:05 the angle is 122.5 degrees. 提示1:以表中心到12点的连线为基准,针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。要求结果角度为正值,即最终要取绝对值(fabs函数) 提示2:二者之间角度不应大于180度,如果大于,应用360度减去该角度。
最新发布
12-05
MyTime类可以表示时间(小时+分钟),具有两个整数属性一个字符串属性: 小时分钟值 错误消息提示 并具有一个构造方法(与类同名的方法)三个普通方法: 构造方法:接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则别用于设定小时分钟值,如不合理,则输出错误提示信息,并将小时分钟值均设为0。 setTime()方法,接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则别用于设定小时分钟值,如不合理,则输出错误提示信息,并保持原值 不变 showTime()方法,输出时间信息,格式形如“Time is 23:18” getTime12()方法,输出12小时制的时间信息,格式形如“Time in 12---10:35 am”或“Time in 12---10:35 pm” 要求编程实现MyTime类,使给定的Test类能正常运行,并实现指定的输出内容。 public class Test{ static public void main(String args[]){ MyTime mt = new MyTime(25,43); mt.showTime(); mt = new MyTime(10,35); mt.showTime(); System.out.println("Time in 12---"+mt.getTime12()); mt.setTime(25,16); mt.showTime(); mt.setTime(23,18); mt.showTime(); System.out.println("Time in 12---"+mt.getTime12()); } } 【输入形式】 【输出形式】 invalid time value! Time is 0:0 Time is 10:35 Time in 12---10:35 am invalid time value! Time is 10:35 Time is 23:18 Time in 12---11:18 pm
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值