题目内容:
产生20个[0,99]之间的随机整数,从大到小输出其中的前5个。
书接上回,这是第二道。
代码:
import java.util.Scanner;
public class ShengChengSuiJiShuPaiXu
{
public static void main(String args[])
{
int a[] = new int[20];
System.out.println("生成20个随机整数为:");
for(int i = 0; i < 20; i++)
{
int random_num = (int)(Math.random() * 100);
System.out.println(random_num);
a[i] = random_num;
}
System.out.println("经过从大到小排序的前五个数为:");
for(int i = 0; i < a.length; i++)
{
for(int j = i + 1; j < a.length; j++)
{
if(a[i] < a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(int i = 0; i < 5; i++)
{
System.out.println(a[i]);
}
}
}
这道题本身并不复杂,无非是生成固定范围的随机数并且显示出来。但关键是后面要求从大到小排序,还要取前五个数……这就难到了一大群学艺不精(不是)跟我一样喜欢摸鱼(不是)从简处理的同学了。
但是如果稍微认真思考一下,就会发现,我们只需要增加几个循环,这个问题就迎刃而解了。
我们先按照从大到小的顺序依次排好,之后提取前五个数字就行了。是不是看似非常复杂的要求,但实际上却意外简单?
运行: