import java.lang.*;
public class ArrayTest{
public static void main(String[] args)throws ArrayIndexOutOfBoundsException{
int[] array=new int[]{1,2,6,7,5,2,8,4,6,7,9,11,5,3};
boolean change=true;
for(int i=1;i<=array.length&&change;i++){
change=false;
for(int j=i;j<=array.length-i;j++){
int temp;
if(array[j]>array[j+1]){
temp=array[j];array[j]=array[j+1];array[j+1]=temp;
change=true;
}
}
}System.out.println("最大值为:"+array[array.length]);
System.out.println("最小值为:"+array[1]);
float average;
int sum=0;
for(int i=1;i<=array.length;i++){
sum+=array[i];
}
average=sum/array.length;
System.out.println("平均值为:"+average);
System.out.println("和为:"+sum);
}}
public class ArrayTest{
public static void main(String[] args)throws ArrayIndexOutOfBoundsException{
int[] array=new int[]{1,2,6,7,5,2,8,4,6,7,9,11,5,3};
boolean change=true;
for(int i=1;i<=array.length&&change;i++){
change=false;
for(int j=i;j<=array.length-i;j++){
int temp;
if(array[j]>array[j+1]){
temp=array[j];array[j]=array[j+1];array[j+1]=temp;
change=true;
}
}
}System.out.println("最大值为:"+array[array.length]);
System.out.println("最小值为:"+array[1]);
float average;
int sum=0;
for(int i=1;i<=array.length;i++){
sum+=array[i];
}
average=sum/array.length;
System.out.println("平均值为:"+average);
System.out.println("和为:"+sum);
}}
解决方案 »
- Java,求问如何给一个按钮添加一个快捷键?
- xml取值问题
- 有关Swing里的拖放操作
- 新手的cannot resolve symbol out问题 请赐教
- 新手实在不知道怎么解决了,几天了看书和网上收资料都没解决,请求大家的帮忙,解决了给100分
- 当按下关闭按钮,如何用swing函数弹出一个窗口确认是否退出?
- 为什么我的j2sdk-1_4_2_04-windows-i586-p.exe一直装不进去?
- 做个调查,大家说说都是那里人士!!!
- 今天软考,欢迎大家到谢伟程序员论坛的程序员考试交流中心来发表意见!!!
- 请问JAVA里有类似C中"scanf()"的快速获取输入的方法吗?
- querydataset怎样修改一条属性的某一个字段?在线等!!
- 急等jxl包
public class ArrayTest{
public static void main(String[] args)throws ArrayIndexOutOfBoundsException{
int[] array=new int[]{1,2,6,7,5,2,8,4,6,7,9,11,5,3};
boolean change=true;
for(int i=0;i <array.length&&change;i++){
change=false;
for(int j=0;j <array.length-i-1;j++){
int temp;
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
change=true;
}
}
}System.out.println("最大值为:"+array[array.length-1]);
System.out.println("最小值为:"+array[1]);
float average;
int sum=0;
for(int i=0;i <array.length;i++){
sum+=array[i];
}
average=sum/array.length;
System.out.println("平均值为:"+average);
System.out.println("和为:"+sum);
}}
这句有问题,你上面的数组长度一共是14,那么在循环最后一个时候,最后一个数组的下标是13,那么你这里就变成了
if(array[13] > array[14]),那很明显就是数组越界错误了
public class ArrayTest{
public static void main(String[] args)throws ArrayIndexOutOfBoundsException{
int[] array=new int[]{1,2,6,7,5,2,8,4,6,7,9,11,5,3};
boolean change=true;
for(int i=0;i <array.length&&change;i++){
change=false;
for(int j=0;j <array.length-i-1;j++){
int temp;
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
change=true;
}
}
}System.out.println("最大值为:"+array[array.length-1]);
System.out.println("最小值为:"+array[0]);
float average;
int sum=0;
for(int i=0;i <array.length;i++){
sum+=array[i];
}
average=sum/array.length;
System.out.println("平均值为:"+average);
System.out.println("和为:"+sum);
}}
你的引用有问题了
public class Overloading {
public static void main(String[] args)
throws ArrayIndexOutOfBoundsException {
int[] array = new int[] { 1, 2, 6, 7, 5, 2, 8, 4, 6, 7, 9, 11, 5, 3 };
for (int i = 0; i < array.length-1 ; i++) {
for (int j = i+1; j < array.length ; j++) {
int temp;
if (array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
System.out.println("最大值为:" + array[array.length-1]);
System.out.println("最小值为:" + array[0]);
float average;
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
average = sum / array.length;
System.out.println("平均值为:" + average);
System.out.println("和为:" + sum);
}
}
数组的下标值从0开始;
Array.length是数组的长度,
比如: int[] array = new int[] { 5, 3 };
array的长度是2,但它的最大下标不能取到2,
array[0]=5,array[1]=3;
因此你要取它的全部数据你就要从0到array.length就可以了.
最简单的解释,length=1说明有1个元素,但是访问它就是array[0]
如果length=100,array[99]就是最后一个了,array[100]就是越界了你的for语句第2个判断用了'<=',改成'<'应该可以了
“循环length-1轮,循环length-1次,再将数据的前一个与后一个比较,如果大于或小于就交换。”
先写出二层for循环再说,优化先等你写出来了再进行。