相同代码相同测试用例,本地运行输出正确,在线编程显示无输出

    本人菜鸟一枚。做编程题过程中,在本地eclipse中完成之后,拷贝到在线编程框框中,类名修改为Main后,系统提示在某组测试用例下,我的代码无输出结果。但是本地运行是有结果的,且结果正确。所以不知道什么情况了。之后又做了两道别的题,出现同样的情况,都是本地运行正确,但是错误信息提示是无结果输出,所以比较郁闷,不知道是个人习惯问题出现了错误,还是在线编程工具使用不当造成的。希望各位前辈解答疑惑。万分感激!
    以一道题为例,请大神们指摘。谢谢!水平有限,勿喷!  题目要求:

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

Input Param

n               输入随机数的个数

inputArray      n个随机整数组成的数组


Return Value

OutputArray    输出处理后的随机整数


注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。

输入描述:

输入多行,先输入随机整数的个数,再输入相应个数的整数

输出描述:

返回多行,处理后的结果

输入例子:
11
10
20
40
32
67
40
20
89
300
400
15
输出例子:
10
15
20
32
40
67
89
300
400





我的答案:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=0;
if(sc.hasNextInt()){
n=sc.nextInt();
}
Set<Integer> set=new HashSet<Integer>();
for(int j=0;j<n;j++){
if(sc.hasNextInt()){
int input=sc.nextInt();
set.add(input);
}
}
sc.close();
ArrayList<Integer> list=new ArrayList<Integer>();
list.addAll(set);
Collections.sort(list);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}





错误提示:


测试用例:
288 23 29 40 111 41 104 21 94 108 118 21 110 34 24 24 40 66 19 25 40 30 5 59 116 98 110 118 77 87 49 95 53 44 94 52 104 7 118 20 5 57 81 73 39 106 6 26 2 69 44 19 50 78 61 55 27 97 103 109 66 101 15 86 17 70 96 50 1 118 81 107 102 22 84 112 64 106 14 15 14 93 54 38 66 78 5 118 60 107 84 34 47 57 8 5 67 111 42 35 64 10 109 90 57 72 73 91 54 5 10 31 64 113 39 120 6 45 15 46 112 40 105 115 106 88 64 20 113 52 1 40 90 103 63 28 11 34 33 11 78 42 30 119 34 94 78 73 104 36 44 65 41 81 69 74 75 49 66 30 74 75 111 44 97 102 65 99 63 77 78 102 84 10 6 12 27 99 120 84 37 10 74 2 83 53 18 106 48 17 26 94 50 11 120 17 21 79 42 48 48 75 91 56 69 21 44 16 14 34 110 43 27 102 63 81 92 109 97 100 70 23 44 17 32 60 40 40 36 3 92 48 34 88 58 30 106 63 31 8 116 90 100 83 111 42 112 6 8 115 109 83 7 26 88 68 86 116 39 55 76 109 45 1 39 4 52 78 26 33 96 14 38 105 65 116 4 48 83 24 113 111 70 37 34 51 46 18 104
对应输出应该为:
1 2 3 4 5 6 7 8 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 81 83 84 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 115 116 118 119 120
你的输出为:









谢谢各位!
全部评论
测试用例的问题吧,测试用例不止一组,将实现代码用 while(sc.hasNext()){}包起来试试
点赞 回复 分享
发布于 2017-03-07 19:01
注意多组一测试用例
点赞 回复 分享
发布于 2017-03-08 14:20
非常感谢朋友的建议!问题得到了解决!特贴上上题代码,希望能帮别的朋友解决问题。整体思路就是将代码实现放进while (sc.hasNext()){}中,代码里面如果有sc.close()去掉,就可以了。 import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){             int n=0; if(sc.hasNextInt()){ n=sc.nextInt(); } Set<Integer> set=new HashSet<Integer>(); for(int j=0;j<n;j++){ if(sc.hasNextInt()){ int input=sc.nextInt(); set.add(input); } } ArrayList<Integer> list=new ArrayList<Integer>(); list.addAll(set); Collections.sort(list); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); }         } } } 谢谢!
点赞 回复 分享
发布于 2017-03-08 10:33
我多组还是不行啊
点赞 回复 分享
发布于 2017-10-07 22:18

相关推荐

10-28 15:45
门头沟学院 C++
西南山:海康威视之前不是大规模裁员吗
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务