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