public class Sort
{ public static void main(String args[])
{ int a[]=new int[10];
for(int i=0;i<10;i++)
a[i]=Math.random()%100;
Bubblesort(a,10);
System.out.println("采用冒泡排序后的结果为(从小到大):");
for(int j=0;j<10;j++)
System.out.print(a[i]+"");
}
public static void Bubblesort(int[] c,int n)
{ int r;boolean flag=true;
for(int i=0;i<n;i++)
{ for(int j=0;j<n;j++)
if(c[j+1]<c[j])
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}
if(flag)break;
}
}
}
{ public static void main(String args[])
{ int a[]=new int[10];
for(int i=0;i<10;i++)
a[i]=Math.random()%100;
Bubblesort(a,10);
System.out.println("采用冒泡排序后的结果为(从小到大):");
for(int j=0;j<10;j++)
System.out.print(a[i]+"");
}
public static void Bubblesort(int[] c,int n)
{ int r;boolean flag=true;
for(int i=0;i<n;i++)
{ for(int j=0;j<n;j++)
if(c[j+1]<c[j])
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}
if(flag)break;
}
}
}
for(int j=0;j<10;j++)
System.out.print(a[i]+"");输出a[j]吧
{ for(int j=0;j<n;j++)
if(c[j+1]<c[j])
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}第二层循环会抛出数组越界异常
你第二层的上限是j=n-1
那么你c[j+1]的上限 就变成c[n]
溢出鸟
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}
抛出数组越界异常
for(int i=0;i<n;i++)
{ for(int j=i;j<n-1;j++) /这里错了
if(c[j+1]<c[j])
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}
if(flag)break;
public class Sort
{ public static void main(String args[])
{ int a[]=new int[10];
for(int i=0;i<10;i++)
a[i]=Math.random()%100;
Bubblesort(a,10);
System.out.println("采用冒泡排序后的结果为(从小到大):");
for(int j=0;j<10;j++)
System.out.print(a[j]+"");
}
public static void Bubblesort(int[] c,int n)
{ int r;boolean flag=true;
for(int i=0;i<n;i++)
{ for(int j=0;j<n-1;j++)
if(c[j+1]<c[j])
{ flag=false;
r=c[j];c[j]=c[j+1];c[j+1]=r;
}
if(flag)break;
}
}
}
显示:Sort.java:5: possible loss of precisi
found : double
required: int
a[i]=Math.random()%100;
1 error
这是怎么回事呀。
^
a[i]=Math.random()%100;
Bubblesort(a,10);
这样写不行把 for(int i=0;i<10;i++)
{
a[i]=Math.random()%100;
}
Bubblesort(a,10);
for下只有一行相关代码才可以省略