为什么出现Exception in thread "main"

我是JAVA初学者,以前学过C语言,想用JAVA改写一下C语言的冒泡排序法,以下是我的程序。但运行时却出现Exceptioninthread"main"java.lang... 我是JAVA初学者,以前学过C语言,想用JAVA改写一下C语言的冒泡排序法,以下是我的程序。
但运行时却出现
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at MaoPao.main(MaoPao.java:10)
请教大虾指导
import java.util.*;
public class MaoPao {
public static void main(String[] args){
int x[]=new int[100];
int j,temp;
Scanner input=new Scanner(System.in);
System.out.print("input n:");
int n=input.nextInt();
for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
for(int i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(x[j]>x[j+1]){
temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
System.out.println(x[i]);
}
}

}
展开
 我来答
四舍五不入6
高粉答主

2019-10-04 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.2万
展开全部

这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。

1、解决措施就是保证jvm(java命令)和jdk(javac命令)版本一致。如果是linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。

2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。

扩展资料:

class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。

class文件径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。

参考资料来源:百度百科-class文件

参考资料来源:百度百科-Java (计算机编程语言)

百度网友5eff51004
推荐于2017-09-24 · TA获得超过246个赞
知道答主
回答量:180
采纳率:0%
帮助的人:102万
展开全部
错误上已经写的很清楚了啊at MaoPao.main(MaoPao.java:10) 在第10行有错,要学会看错误提示ArrayIndexOutOfBoundsException:数组下标越界,结合这两个可以很容易找到错误是你的for循环错了,for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
应该是:x[i]=input.nextInt();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tn瓶邪
推荐于2017-09-06 · TA获得超过1881个赞
知道小有建树答主
回答量:610
采纳率:98%
帮助的人:112万
展开全部
应该是
public static void main(String[] args)
还有下面的方法都必须加上static才能在main方法中直接调用
public static void printPattern1()
public static void printPattern2()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingjian22
2008-05-09 · TA获得超过159个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:212万
展开全部
import java.util.*;

public class MaoPao {
public static void main(String[] args) {
int x[] = new int[100];
int j, temp;
Scanner input = new Scanner(System.in);
System.out.print("input n:");
int n = input.nextInt();
System.out.println("请输入" + n + "个数字:");
for (int i = 0; i < n; i++) {
x[i] = input.nextInt(); //楼主这里应该是i吧
}
for (int i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (x[j] > x[j + 1]) {
temp = x[j];
x[j] = x[j + 1];
x[j + 1] = temp;
}
}
}
System.out.println("结果是:");
for (int i = 0; i < n; i++) {
System.out.println(x[i]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jgjcq
2008-05-09 · TA获得超过270个赞
知道小有建树答主
回答量:434
采纳率:0%
帮助的人:210万
展开全部
int n=input.nextInt();
for(int i=0;i<n;i++){
x[100]=input.nextInt();
}
数组越界
你的数组最后一个元素应该为a[99]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式