IMAUOJ-1229 Problem C:测睡仪

12 篇文章 0 订阅
10 篇文章 0 订阅

题目描述

L老师通过调查发现班级里好几个学生每天玩手机到凌晨,严重影响身体健康和学习,L老师是一个非常负责任的班主任,他决定每天晚上12点去宿舍检查学生的睡觉情况,每次检查学生都按时“睡着了”,但是有些学生每天课上精神萎靡,明显没有休息好,后来L老师发现有些学生在“装睡”。通过咨询医生可以通过一个人的呼吸频率和脉搏,确定谁在装睡!正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。L老师想设计一个测睡仪,测试学生的呼吸频率和脉搏,如果这两项指标有一项不在正常范围内,那证明他在装睡。

输入

输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。

输出

按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。

样例输入

4
Amy 15 70
Tom 14 60
Joe 18 50
Zoe 21 71

样例输出

Tom
Zoe

源代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
         Scanner cin=new Scanner(System.in);
         int n = cin.nextInt();
         String a[][]=new String[n][3];
         for(int i=0;i<n;i++){
             for(int j=0;j<3;j++){
                 a[i][j]=cin.next();

             }
         }
         cin.close();
         for(int i=0;i<n;i++){
             int t1=Integer.parseInt(String.valueOf(a[i][1]));
             //String数组转String,然后再将String转整
             int t2=Integer.parseInt(String.valueOf(a[i][2]));
             if((t1<15||t1>20)||(t2<50&&t2>70))
                 System.out.println(a[i][0]);
         }
    }
}

注:

String.valueOf()方法的使用:由基本数据型态转换成 String 
String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 
也就是 String.valueOf() 这个参数多载的方法 
有下列几种 
String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 
String.valueOf(char c) : 将 char 变量 c 转换成字符串 
String.valueOf(char[] data) : 将 char 数组 data 转换成字符串 
String.valueOf(char[] data, int offset, int count) : 
将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串 
String.valueOf(double d) : 将 double 变量 d 转换成字符串 
String.valueOf(float f) : 将 float 变量 f 转换成字符串 
String.valueOf(int i) : 将 int 变量 i 转换成字符串 
String.valueOf(long l) : 将 long 变量 l 转换成字符串 
String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString() 
用法如: 
int i = 10; 
String str = String.valueOf(i); 

ParseInt()方法的使用基本用法(只接受一个参数,可以当做第二个参数默认是10):parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN。

a.将字符串转为整数。parseInt('123') // 123

b.如果字符串头部有空格,空格会被自动去除。parseInt('   81') // 81

c.如果parseInt的参数不是字符串,则会先转为字符串再转换。这个很重要

d.字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。

e.如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。

f.如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。parseInt('0x10') // 16

g.如果字符串以0开头,将其按照10进制解析。parseInt('011') // 11

h.如果参数以0开头,但不是字符串,则会先将数值转成字符串,然后解析,见规则c  parseInt(011) // 9

i.对于那些会自动转为科学计数法的数字,parseInt会将科学计数法的表示方法视为字符串,因此导致一些奇怪的结果。

parseInt(1000000000000000000000.5) // 1
// 等同于
parseInt('1e+21') // 1

parseInt(0.0000008) // 8
// 等同于
parseInt('8e-7') // 8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值