本文目錄一覽:
Java數組求最大最小值
這裡的難點在於記錄數字的位置,因此我定義了一個類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
java如何求最大值?
測試結果為
請輸入第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 = 1; i = 10; i++) {
System.out.println(“請輸入第” + i + “個數”);
int num = in.nextInt();
if(num = max) max = num;
}
System.out.println(“最大數為:” + max);
}
}
Java求最大值的三種方法
普通方法:
public class Max {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5,10,11,15,100,-1,-4.5}; //定義一維數組
double num = myList[0]; //0為第一個數組下標
for (int i = 0; i myList.length; i++) { //開始循環一維數組
if (myList[i] num) { //循環判斷數組元素
num = myList[i]; } //賦值給num,然後再次循環
}
System.out.println(“最大值為” + num); //跳出循環,輸出結果 }
}
三元運算符:
public class Max {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5,10,11,15,1,-1,-4.2}; //定義一維數組
double num = myList[0]; //0為第一個數組下標
for (int i = 0; i myList.length; i++){ //開始循環一維數組
num=(myList[i] num?num: myList[i]); //三元運算符,詳情看註解
}
System.out.println(“最大值為” + num); //跳出循環,輸出結果
}}
一般函數/方法:
public class Max {
double[] myList = {1.9, 2.9, 3.4, 100,3.5,10,11,12,13,-1};
double num = myList[0];
void getValue(){ //創建一般方法
for (int i = 0; i myList.length; i++) {
num=(myList[i] num?num: myList[i]);//三元運算符
}
System.out.println(“最大值為” + num);
}
public static void main(String args[]){
Max max=new Max(); //創建對象
max.getValue(); //通過對象調用一般方法
}
}
三種求最大值的方法
Java中能求出任意3個數字中最大值的代碼嗎?
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;
原創文章,作者:NOZM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135460.html