输入随机8个数 然后按从小到大的顺序排列
我是这么写的:
import java.util.*;
public class app5_5 { public static void main(String args[]) {
Random ran=new Random();
int c[]=new int[8];
for(int i=0;i<8;i++){
c[i]=ran.nextInt(100);
}
int d;
for(int i=0;i<8;i++){
d=c[i];
for(int j=0;j<8;j++){
if(d>c[j])
d=c[j];
}
System.out.print(d+" ");
}
}
}可是结果却是输出的数据都是同一个数
新手 把基础的弄懂先
我是这么写的:
import java.util.*;
public class app5_5 { public static void main(String args[]) {
Random ran=new Random();
int c[]=new int[8];
for(int i=0;i<8;i++){
c[i]=ran.nextInt(100);
}
int d;
for(int i=0;i<8;i++){
d=c[i];
for(int j=0;j<8;j++){
if(d>c[j])
d=c[j];
}
System.out.print(d+" ");
}
}
}可是结果却是输出的数据都是同一个数
新手 把基础的弄懂先
d=c[i];
for(int j=0;j<8;j++){
if(d>c[j])
d=c[j];
}
System.out.print(d+" ");
}
你的这句虽然外循环有d=c[i] ,但是内循环每次都将数组c的最小值赋值给d,所以你的d只能是数组c的最小值
Random ran = new Random();
int c[] = new int[8];
for (int i = 0; i < 8; i++) {
c[i] = ran.nextInt(100); } //输出查看随机数,没有问题
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
//以前的算法,每次输出都那取的第i个和所有的比,结果得到最小的当然都是同一个数
//使用其他排序吧,例如选择排序
int d = 0;
int index = 0;
int temp = 0;
for (int i = 0; i < 8; i++) {
d = c[i];
index = i;
for (int j = i; j < 8; j++) {
if (d > c[j])
{
d = c[j];
index = j;
}
}
if(index !=i)
{
temp = c[i];
c[i] = c[index];
c[index] = temp;
}
}
for (int i = 0; i < c.length; i++) {
System.out.print(c[i]+" ");
}
}
for (int i = 0; i < 8; i++) {
d = c[i];
for (int j = i; j < 8; j++) {//修改的地方 让j 从i 的位置开始循环
if (d > c[j])
d = c[j];
}
System.out.print(d + " ");
}
d = c[i];
for (int j = i; j < 8; j++) {//修改的地方 让j 从i 的位置开始循环
if (d > c[j])
d = c[j];
}
System.out.print(d + " ");
}
public static void sort(){
Random ran = new Random();
int c[] = new int[8]; for(int i=0;i<8;i++){
c[i]=ran.nextInt(100);
}
//排序
Arrays.sort(c);
for(int i:c)
System.out.print(i+" ");
}
public static void main(String[] args) {
sort( );
}
}
for(int i:c)
System.out.print(i+" ");
这一句