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

importjava.util.Scanner;publicclassshuchu{publicstaticvoidmain(String[]args){//TODOAu... 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
位同学的年龄。

输出
年龄第二和倒数第二的同学的年龄差。
展开
 我来答
匿名用户
2015-11-25
展开全部
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你的,唯独获取前二和倒数第二的数据是我自己写的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式