在学校ACM预选赛的官网上做题,Eclipse没问题,但是提交到OJ上说Runtime Error

glen2013 2014-05-05 03:47:45
]会不会是OJ的问题?

地址: http://acm.xidian.edu.cn/land/

题目:
给定n个数字,按照数字的各个数位上数字的和从小到大排序。
如果数字之和相同,就先输出数值小的那个数。

输入:3
111
23
31
输出:111
31
23

我的代码
package test55;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[] arr=new int[n];
//获取输入
int[] sum=new int[n];
int a=0;
int b=0;
for(int i=0;i<n;i++){
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
arr[i]=a;
while(a>0){
b=a%10;
sum[i]+=b;
a=a/10;
}
}
int index[]=insertSort(sum);
for(int i=0;i<n;i++){
System.out.println(arr[index[i]]);
}
}
//定义插入排序方法
public static int[] insertSort(int[] sum) {
int index[]=new int[sum.length];
for(int i=0; i<sum.length; i++) {
index[i]=i;
}
for(int i=1; i<sum.length; i++) {
for(int j=i; j>0; j--) {
if(sum[j] < sum[j-1]) {
int temp = sum[j];int t=index[j];
sum[j] = sum[j-1];index[j]=index[j-1];
sum[j-1] = temp;index[j-1]=t;
} else {
break;
}
}
}
return index;
}

}
...全文
381 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ss_999 2014-05-07
  • 打赏
  • 举报
回复
在eclipse上跑了下LZ的代码,按顺序输入的三个数字为111,22,21时,结果为111,21,22,不符合题意吧。
  • 打赏
  • 举报
回复
还有acm上比较坑爹的。答案好像是唯一的,不然就是error,没被accept。
  • 打赏
  • 举报
回复
我也在acm上做过作业的。好像不要包名的,一般都是默认的。
罗博士 2014-05-05
  • 打赏
  • 举报
回复
引用 3 楼 u012061345 的回复:
你用了两次new Scanner (System.in),试试只用一次。 OJ上不能AC,99.99%的可能是你的问题。
不是两次,是多次。把循环里的new Scanner去掉,只保留第一个。
罗博士 2014-05-05
  • 打赏
  • 举报
回复
你用了两次new Scanner (System.in),试试只用一次。 OJ上不能AC,99.99%的可能是你的问题。
smj348898342 2014-05-05
  • 打赏
  • 举报
回复
一般是默认包,不带包名的
ningbohezhijun 2014-05-05
  • 打赏
  • 举报
回复
首先我想说OJ上的package是随便叫的吗,你还是看下FAQ吧。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧