三个变量获取第二最大值

int a1=15;        int a2=27;        int a3=9;

方法1(思路清晰型)

if(a1>a2){
if(a1>a3){
if(a2>a3)
System.out.println("最二大值为: "+a2);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最二大值为: "+a1);
}
}else if(a2>a3){
if(a1>a3)
System.out.println("最二大值为: "+a1);
else
System.out.println("最二大值为: "+a3);
}
else{
System.out.println("最2值为: "+a2);
}

方法2(三元运算)

int maxdd=a1>a2?a1:a2;                //比较a1与a2中的最大值并赋值给maxdd
int mindd=a1<=a2?a1:a2;              //比较 a1与a2中的最小值 并赋值给mindd
int max=maxdd>a3?maxdd:a3;     //比较maxdd与a3的最大值 赋值给max,此时的max即为三者中的最大值
int mind=maxdd<=a3?maxdd:a3;     //比较maxdd与a3的最小值 赋值给mind
int second=mindd>mind?mindd:mind;   //比较minddmind的最大值 赋值给second,此时的second即为第二大值
int min=mindd<=mind?mindd:mind;      //比较minddmind的最小值赋值给min,此时的min即为三者中的最小值
System.out.println("第二大数为:"+second);

方法3(冒泡排序

if(a1>a2){        //冒泡排序法
   //将a1赋值给a2    两个变量相互赋值不涉及第三方变量
    a1=a1+a2;      //15+27
   a2=a1-a2;       //15+27-27
   a1=a1-a2;      //15+27-15
  } if( a2>a3){
   //将 a2赋值给 a3
   a2= a2+ a3;        //27+9
  a3= a2- a3;           //27+9-9
  a2= a2- a3;         //27+9-27 
  } if(a1>a2){
   System.out.print(a1);
  }else
   System.out.print(a2);

  
加油!微笑

猜你喜欢

转载自blog.csdn.net/Lian_Hua/article/details/81004198