描述
你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。
输入
输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。
输出
按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行
针对这道题,我先采用简单的方式,具体代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
int n= sca.nextInt();
for(int i=0;i<n;i++){
String name= sca.next();
int R= sca.nextInt();
int P= sca.nextInt();
if(15<R||R<20 || 50<P||P<70){
System.out.println(name);
}
}
}
}
运行结果如下:
我们会发现,name对应的值全部输出了,不符合题意。那我们就可以思考数组的形式,代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String name[] = new String[n];
int R[] = new int[n];//R表示呼吸频率
int P[] = new int [n];//P表示脉搏
for(int i=0;i<n;i++) {
name[i] = sc.next();
R[i] = sc.nextInt();
P[i] = sc.nextInt();
}
for(int k =0;k<n;k++) {
if(R[k]<15||R[k]>20||P[k]<50||P[k]>70) {
System.out.println(name[k]);
}
}
}
}
我只是一个小白,有什么不妥之处,请指正。谢谢