public class hellojava {
public static void main(String[] args) {
int a[]= {5,6,8,4,5},Amax,x;
for( x=1;x<a.length;x++){
if(a[x+1]<a[x]){
Amax=a[x+1];
a[x+1]=a[x];
a[x]=Amax;
}
}
for(int y:a) {
System.out.print(a[y]);
}
}
}
首先,报错是因为你的数组下标超过了a.length的长度.
其次,你的数组比较并不会真的排序,因为缺少了内循环.
最后,如果要排序的话,那就需要一个内循环了.
代码如下:
public static void main(String[] args) {
int a[] = {5, 6, 8, 4, 5};
int temp;
System.out.println("排序前的数组为:");
for (int i = 0; i < a.length; i++) {
System.out.print(+a[i]+"\t");
}
for (int x = 0; x < a.length-1; x++) {
for (int i = 0; i < a.length-1; i++) {
if(a[i]>a[i+1]) {
temp = a[i];
a[i] = a[i+1];
a[i+1] =temp;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for (int k:a) {
System.out.print(k+"\t");
}
}
排序前的数组为:
5 6 8 4 5
排序后的数组为:
4 5 5 6 8
public class hellojava {
public static void main(String[] args) {
int a[] = {5, 6, 8, 4, 5}, Amax, x, t;
for (int i = 0; i < a.length - 1; i++)
{
Amax = i;
for (x = i + 1; x < a.length; x++){
if (a[Amax] < a[x])
Amax = x;
}
t = a[i];
a[i] = a[Amax];
a[Amax] = t;
}
for(int y : a) {
System.out.print(y + " ");
}
}
}
8 6 5 5 4