下面java冒泡排序错哪了

import java.util.Scanner; class s1{ public static void main(String []args){ int a[]=new int [10],t=0; Scanner q=new Scanner(System.in); for(int i=1;i<11;i++) {a[i]=q.nextInt(); System.out.println("这十个数为:"+a[i]);} for(int i=0;i<=9;i++) for(int j=1;j<=9-i;j++) {if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=a[i];}} for(int i=1;i<11;i++) System.out.println("排序后这十个数为:"+a[i]);}}

第1个回答  2019-03-25
for(int
i=0;i<=9;i++)

for(int
j=1;j<=9-i;j++)
判断条件错了,应该是
for(i=0;i<=8;i++)

for(j=i+1;j<=9,j++)
因为a[i]跟他以后的数比较,所以肯定后面的数组下标要大于i,,小于数组长度
第2个回答  2020-09-13
t=a[i];
a[i]=a[i+1];
a[i+1]=a[i];
这里错了,应该是
t=a[i];
a[i]=a[i+1];
a[i+1]=t
因为你的a[i]已经被重新赋值了,所以你需要使用t这个临时容器保存a[i]之前的值,你这里再写
a[i+1]
=
a[i]就错了