Java中能求出任意3个数字中最大值的代码吗?

Python011

Java中能求出任意3个数字中最大值的代码吗?,第1张

Java中能求出任意3个数字中最大值的代码

1、if语句嵌套

2、if语句

3、if语句(假定a最大,b,c与a比较,如果比a大,则赋值给max)

4、三元运算符

5、if语句 + 逻辑运算符 &&(a,b,c三个数,如果不是a最大,或者b最大,就是c最大)

一、if语句嵌套

int a = 10

int b = 30

int c = 20

int max

if (a >b) {

if (a >c) {

max = a

} else {

max = c

}

} else {

if (b >c) {

max = b

} else {

max = c

}

}

二、if语句

int a = 10

int b = 30

int c = 20

int max

if (a >b) {

max = a

} else {

max = b

}

if (max <c) {

max = c

}

三、if语句(假定a最大,b,c与a比较,如果比a大,则赋值给max)

int a = 10

int b = 30

int c = 20

int max = a

if (b >max) {

max = b

}

if (c >max) {

max = c

}

四、三元运算符

int a = 10

int b = 30

int c = 20

int max = (a >b) ? a : b

max = (max >c) ? max : c

或者

int max = ((a >b ? a : b) >c) ? (a >b ? a : b) : c(建议不用这种)

五、if语句 + 逻辑运算符 &&(a,b,c三个数,如果不是a最大,或者b最大,就是c最大)

int a = 10

int b = 30

int c = 20

int max

if (a >b &&a >c) {

max = a

} else if (c >a &&c >b) {

max = c

} else

max = b

测试结果为

请输入第1个数

2

请输入第2个数

3

请输入第3个数

4

请输入第4个数

5

请输入第5个数

6

请输入第6个数

7

请输入第7个数

7

请输入第8个数

8

请输入第9个数

9

请输入第10个数

423

最大数为:423

import java.util.Scanner

public class MaxNum {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in = new Scanner(System.in)

int max = Integer.MIN_VALUE

for(int i = 1i <= 10i++) {

System.out.println("请输入第" + i + "个数")

int num = in.nextInt()

if(num >= max) max = num

}

System.out.println("最大数为:" + max)

}

}

这里的难点在于记录数字的位置,因此我定义了一个类NumPosition.java,由数字和它的位置组成:

public class NumPosition {

private int num

private int position

public NumPosition(int num, int position) {

this.num = num

this.position = position

}

public int getNum() {

return num

}

public int getPosition() {

return position

}

}

然后在main函数中,首次遍历求和的时候,记录每一个数字的位置,之后排序后,就可以找到最大值和最小值的位置了:

public class Main {

public static void main(String[] args) {

int[] s = new int[]{3, 5, 2, 6, 54, 8, 9, 1, 4, 11}

NumPosition[] positions = new NumPosition[s.length]

int sum = 0

for (int i = 0i <s.lengthi++) {

sum += s[i]

positions[i] = new NumPosition(s[i], i)

}

System.out.println("一维数组中的数的和为:" + sum)

//jdk自带数组升序排序,也可以搜一下冒泡排序自己实现

Arrays.sort(s)

int min = s[0]//最小值 排序后第一个元素

int max = s[s.length - 1]//最大值 排序后最后一个元素

for (int i = 0i <positions.lengthi++) {

if (positions[i].getNum() == min) {

System.out.println("数组中的最小的数为:[" + min + "],其位于数组的第[" + positions[i].getPosition() + "]位置")

}

if (positions[i].getNum() == max) {

System.out.println("数组中的最大的数为:[" + max + "],其位于数组的第[" + positions[i].getPosition() + "]位置")

}

}

}

}

运行结果:

这里位置是从0算起的,如果要从1算起就每个位置加1