import java.util.Scanner;
public class Bidaxiao
{
public static void main(String[] args)
{
System.out.println("请输入第1位数");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("请输入第2位数");
int b = sc.nextInt();
System.out.println("请输入第3位数");
int c = sc.nextInt();
System.out.println("请输入第4位数");
int d = sc.nextInt();
System.out.println("请输入第5位数");
int e = sc.nextInt();
int temp = 0;
if(a<b){
temp = a;
a=b;
b=temp;
}
if(a<c){
temp = a;
a=c;
c=temp;
}
if(a<d){
temp = a;
a=d;
d=temp;
}
if(a<e){
temp = a;
a=e;
e=temp;
}
System.out.println(a);
int secmax = 0;
if(b<c){
secmax=b;
b=c;
secmax=c;
}
if(b<d){
secmax=b;
b=d;
secmax=d;
}
if(b<e){
secmax=b;
b=e;
secmax=e;
}
System.out.println(b);
}
}
[img=QQ截图未命名.bmp]
为什么一输入2位相同的最大数,第二大的数输出也是和最大数是一样的,我的代码哪里错了,请帮我改改!!
public class Bidaxiao
{
public static void main(String[] args)
{
System.out.println("请输入第1位数");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("请输入第2位数");
int b = sc.nextInt();
System.out.println("请输入第3位数");
int c = sc.nextInt();
System.out.println("请输入第4位数");
int d = sc.nextInt();
System.out.println("请输入第5位数");
int e = sc.nextInt();
int temp = 0;
if(a<b){
temp = a;
a=b;
b=temp;
}
if(a<c){
temp = a;
a=c;
c=temp;
}
if(a<d){
temp = a;
a=d;
d=temp;
}
if(a<e){
temp = a;
a=e;
e=temp;
}
System.out.println(a);
int secmax = 0;
if(b<c){
secmax=b;
b=c;
secmax=c;
}
if(b<d){
secmax=b;
b=d;
secmax=d;
}
if(b<e){
secmax=b;
b=e;
secmax=e;
}
System.out.println(b);
}
}
[img=QQ截图未命名.bmp]
为什么一输入2位相同的最大数,第二大的数输出也是和最大数是一样的,我的代码哪里错了,请帮我改改!!
System.out.println("请输入第1位数");
Scanner sc = new Scanner(System.in);
arrays[0] = sc.nextInt();
System.out.println("请输入第2位数");
arrays[1] = sc.nextInt();
System.out.println("请输入第3位数");
arrays[2] = sc.nextInt();
System.out.println("请输入第4位数");
arrays[3] = sc.nextInt();
System.out.println("请输入第5位数");
arrays[4]= sc.nextInt();
Arrays.sort(arrays);
System.out.println("最大数: "+arrays[4]);
System.out.println("第二大数: "+arrays[3]);
排序法:先定义个数组然后用for循环中间嵌套一个if语句就可以啦!
import java.util.HashSet;
import java.util.Scanner;
public class Test { public static void main(String[] args) {
HashSet arrays = new HashSet(0);//Set可以自动去掉重复的数值,并自动升序排序
Scanner sc = new Scanner(System.in); for(int i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"位数");
arrays.add(new Integer(sc.nextInt()));
}
Object []arr=arrays.toArray();//把Set转成一个数组,以便显示
System.out.println("最大数: "+arr[arr.length-1]);
System.out.println("第二大数: "+arr[arr.length-2]);
}}
import java.util.Scanner;
public class Test { public static void main(String[] args) {
HashSet arrays = new HashSet(0);//Set可以自动去掉重复的数值,并自动升序排序
Scanner sc = new Scanner(System.in); for(int i=0;i<5;i++){
System.out.println("请输入第"+(i+1)+"位数");
arrays.add(new Integer(sc.nextInt()));
}
if(arr.length==1){
System.out.println("最大数:"+arr[arr.length-1]);
System.out.println("第二大数:所有数都是一样的");
return;
}
System.out.println("最大数: "+arr[arr.length-1]);
System.out.println("第二大数: "+arr[arr.length-2]);
}}
避免重复的数字
三楼的对于重复数字没有办法处理
如果LZ非要那样的话.. 建议还是先把你所输入的5个数存在数组里做排序,然后取最后一个,倒数第二个跟最大值是否相等,如果相等再往前面找