java程序设计与实践课程,大一菜鸟,有一道题求助!!!
从键盘上输入若干学生的一门课成绩,依输入顺序存入一个数组中,当输入负数时结束输入.输出最高成绩和最低成绩及相应的序号(数组元素下标,有多个最高成绩获最低成绩时,输出全部序...
从键盘上输入若干学生的一门课成绩,依输入顺序存入一个数组中,当输入负数时结束输入. 输出最高成绩和最低成绩及相应的序号(数组元素下标,有多个最高成绩获最低成绩时,输出全部序号)。我自己写的程序是这样的:
import java.util.Scanner;
public class Array{
public static void main(String args[]){
int n=0;
Scanner in = new Scanner(System.in);
System.out.println("Please input your scores:");
int s=in.nextInt();
if(s<0){
System.exit(0);
}else{n++;}
int score[]=new int[n];
int min = Integer.MAX_VALUE;
for(int i=0;i<n;i++){
score[i]=in.nextInt();
if(score[i]<min){
min=score[i];
}
}System.out.println("最小值是"+min);
int max=Integer.MIN_VALUE;
for(int j=0;j<n;j++){
score[j]=in.nextInt();
if(score[j]>max){
max=score[j];
}
}
System.out.println("最大值是"+max);
}}
可以请高手帮我修改一下补充一下吗?这个运行出来是错的,可我又找不出错误。 展开
import java.util.Scanner;
public class Array{
public static void main(String args[]){
int n=0;
Scanner in = new Scanner(System.in);
System.out.println("Please input your scores:");
int s=in.nextInt();
if(s<0){
System.exit(0);
}else{n++;}
int score[]=new int[n];
int min = Integer.MAX_VALUE;
for(int i=0;i<n;i++){
score[i]=in.nextInt();
if(score[i]<min){
min=score[i];
}
}System.out.println("最小值是"+min);
int max=Integer.MIN_VALUE;
for(int j=0;j<n;j++){
score[j]=in.nextInt();
if(score[j]>max){
max=score[j];
}
}
System.out.println("最大值是"+max);
}}
可以请高手帮我修改一下补充一下吗?这个运行出来是错的,可我又找不出错误。 展开
1个回答
推荐于2016-07-06
展开全部
for循环内 有问题
int k = score[0];
for(int j=0;j<n;j++){
if(k < score[j + 1]){
k = score[j + 1];
}
}
System.out.println("最大值是"+max);
追问
还是不能运行,改过来之后会输出
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Array.main(Array.java:12)
TAT
追答
int k = score[0];
for(int j=0;j<n - 1 ;j++){
if(k < score[j + 1]){
k = score[j + 1];
}
}
System.out.println("最大值是"+k);
保证最少有一个数2个数哦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询