求Java大神帮忙看看,这道题我运算出来是对的,可为什么答案错误50%?求正解,谢谢

import java.util.Scanner;
public class shuchu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a,temp=0,sum=0,minsyz=0,zhushu;
Scanner xx=new Scanner(System.in);
zhushu=xx.nextInt() ;if(zhushu<=5&&zhushu>=2){
while(xx.hasNext()){a=xx.nextInt();
int b[]=new int [a];
for(int i=0;i<b.length;i++){
b[i]=xx.nextInt(); }
for(int i=0;i<b.length-1;i++){
minsyz=i;
for(int j=i+1;j<b.length ;j++){
if(b[minsyz]>b[j]){
minsyz=j;
}}if(minsyz!=i)
{temp=b[minsyz];
b[minsyz]=b[i];
b[i]=temp;
}
} for( int i=0;i<b.length;i++)
{ System.out.println(b[a-2]-b[1]);break;}
}}}}
要求

第一行是数据的组数 nCase
(n<=5),每组测试数据的第一行是一个整数 n(n>=2) ,表示班级里有 n 位同学。以下是 n
位同学的年龄。

输出
年龄第二和倒数第二的同学的年龄差。

Scanner xx = new Scanner(System.in);
System.err.println("输入组数:");
zhushu = xx.nextInt();
if (zhushu <= 5 && zhushu >= 2) {
int zhuNum = 1;
while (zhuNum<=zhushu) {
System.err.println("请输入第"+zhuNum+"组的同学个数");
a = xx.nextInt();
int b[] = new int[a];
System.err.println("输入同学们的年龄");
for (int i = 0; i < b.length; i++) {
b[i] = xx.nextInt();
}
Arrays.sort(b);//默认升序
int s = b[1];//取出数组第二位
int ss = b[b.length-2];//取出数组倒数第二位
System.err.println(s+">>>"+ss);
zhuNum++;//组序号加一
}
}

追问

请问我编的那个为什么不可以呢?

追答

就是你下面那两个for代码对比大小算法有问题了,其他的我也没啥改动了,就copy你的,唯独获取前二和倒数第二的数据是我自己写的

温馨提示:答案为网友推荐,仅供参考
相似回答