重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java中能求出任意3个数字中最大值的代码
创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务内乡,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
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;
public class Test {
public static void main(String[] args) {
int[] k = {1, 12, 15, 42, 3, 5, 8, 4};
// 冒泡排序(升序)
for (int i = 0; i k.length - 1; i++) {
for (int j = i + 1; j k.length; j++) {
if (k[i] k[j]) {
int t = k[i];
k[i] = k[j];
k[j] = t;
}
}
}
System.out.println("最大值是: " + k[k.length-1]);
}
}
public class MaxMin {
public static void main(String[] args) {
Integer[] inte = {12,23,54,75,86};
int max = inte[0];
int min = inte[0];
int average = 0;
int sum = 0;
for(int i=0;iinte.length;i++){
if(maxinte[i]){
max = inte[i];
}
if(mininte[i]){
min = inte[i];
}
sum += inte[i];
}
average = sum/inte.length;
System.out.println("最大值----"+max);
System.out.println("最小值----"+min);
System.out.println("平均值----"+average);
}
}
这里的难点在于记录数字的位置,因此我定义了一个类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 = 0; i s.length; i++) {
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 = 0; i positions.length; i++) {
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