乙级 1028 人口普查 (20 分)这个题
在pat官网中,
编程提交,结果如下:
在牛客网中,提交结果如下:
运行超时我就不说了,可是为什么牛客网通过了二官网却有一个错误?求告知。
下面是我的代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//定义人数
String str[][]=new String[n][2];//创建n人的资料数组
int str1[]=new int[n];//创建保存出生年月的数组
int temp1=100000000;//最小岁数的人,所以初值应大于20140906
int temp2=0;//最大岁数的人,所以temp1初值为0
int m1=0;//最大岁数人对应的位置,初值为0
int m2=0;//最小岁数人对应的位置,初值为0
int temp=0;//合理生日人数
for(int i=0;i<n;i++) {//输入名字,出生年月
for(int j=0;j<2;j++){
str[i][j]=sc.next();
}
String st=str[i][1].substring(0, 4)+str[i][1].substring(5, 7)+str[i][1].substring(8, 10);
str1[i]=(int)Double.parseDouble(st);//将出生年月去掉'/'后赋值
if(str1[i]>=18140906&&str1[i]<=20140906) {//超过200岁的和未出生的是不合理的,今天是2014/09/06
temp++;
if(temp1>=str1[i]) {//找出最大岁数的人
temp1=str1[i];//将生日赋值给temp1
m1=i;//将位置保存在m1中
}
if(temp2<=str1[i]) {//找出最小岁数的人
temp2=str1[i];//将生日赋值给temp2
m2=i;//将位置保存在m2中
}
}
}
System.out.print(temp);
System.out.print(" ");//空格间隔
System.out.print(str[m1][0]);//岁数最大得人
System.out.print(" ");//空格间隔
System.out.print(str[m2][0]);//岁数最小的人
}
}