解题思路: 首先确定h的值,h的值利用下标的形式来确定,并且给Map集合0-23的全部英文的0-23,这样对应的小标就是h的值,也是对应的m的0-23的值
其次了确定m的值,m的值分三种、第一种是否为0,就输出h+" o'clock"
第二种那就是0到20并且%10==0,就输出h+m的值,
第三种,就是21-29,31-39,41-49,51-59的值 这个的话,h值不变,但是m做二次拼接字符串的形式输出也就是
h+m+m来输出
注意事项:
参考代码:
import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { //创建扫描器 Scanner scanner = new Scanner(System.in); //声明一个HashMap集合 HashMap<Integer,String> map = new HashMap<Integer, String>(); //声明数组,把0-23的值初始化,方便h的输出 String digit[] = {"zero","one","two","three","four","five","six","seven", "eight","nine","ten","eleven","twelve","thirteen","fourteen", "fifteen","sixteen","seventeen","eighteen","nineteen", "twenty","twenty one","twenty two","twenty three"}; //利用For来让数组的数给到hashMap中去,并且加入30,40,50这些值,方便m的输出 for(int i = 0;i<=23;i++) map.put(i, digit[i]); map.put(30, "thirty"); map.put(40, "forty"); map.put(50, "fifty"); //利用while的特性来输出数组 while(scanner.hasNext()) { //接收用户输入的数字,因为h的固定的下标,输入的是几,小标就是几,所以不用管h的值, //因为m的下标不确定,所以要判断,但是分为三种情况,第一种是否为0, //第二种那就是0到20并且%10==0, //第三种,就是21-29,31-39,41-49,51-59的值 int h = scanner.nextInt(),m = scanner.nextInt(); //为下面的拼接字符串做准备 String ans = ""; //首先判定m第一个数是否为0 if(m == 0) { //要是为0就输出h的下标的已经初始化了数据 ans = map.get(h)+" o'clock"; } //然后判定m是不是在0到20之间或者是%10==0 else if(0<m&&m<=20 || m%10==0){ //那么就输出他的h值和他的已经初始化了数据 ans = map.get(h) +" "+ map.get(m); } //就不是在0-20并且m!=0并且%10不等于0 else { //那么就输出h的值,在加上第一个m的已经初始化了数据和第二个m已经初始化了数据 ans = map.get(h)+" "+map.get(m/10*10)+" "+map.get(m%10); } //最后输出ans的值 System.out.println(ans); } //关掉扫描器 scanner.close(); } }
0.0分
2 人评分
【蟠桃记】 (C语言代码)浏览:826 |
点我有惊喜!你懂得!浏览:1417 |
上车人数 (C语言代码)浏览:1257 |
C语言训练-邮票组合问题* (C语言代码)......浏览:689 |
printf基础练习2 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:607 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1327 |
C语言训练-求PI* (C语言代码)浏览:637 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:583 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:773 |