由键盘输入,求n个不同数的最大值和次大值。
一定从键盘输入!
《Java程序设计基础(第六版)》,例题5.2升级版!
最直接的方法是先输入n个数,保存在数组中,然后排序。
代码如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入n的值:");
int n = sc.nextInt();
System.out.print("请输入"+n + "个数:");
int[] a = new int[n];
for(int i = 0;i<n;i++)
a[i] = sc.nextInt();
//从小到大排序
for(int i = 0;i<n-1;i++){
for(int j = 0;j<n-1-j;j++){
if(a[j] > a[j+1]){
int t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
//输出最大值和次大值
System.out.println("最大值:"+a[n-2]+",次大值:"+a[n-1]);
} //main end
定义2个变量,一个最大值,一个次大值;
只需遍历一次,
如果当前元素值 大于 最大值,则把次大值 = 原最大值,最大值改为当前元素值;
如果当前元素值大于次大值,并且小于最大值,则把次大值改为当前元素值,最大值不变;
循环;
遍历一次得到最大值和次大值