這里的難點在于記錄數(shù)字的位置,因此我定義了一個類NumPosition.java,由數(shù)字和它的位置組成:
我們提供的服務有:成都網(wǎng)站設計、網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、桃源ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的桃源網(wǎng)站制作公司
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函數(shù)中,首次遍歷求和的時候,記錄每一個數(shù)字的位置,之后排序后,就可以找到最大值和最小值的位置了:
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("一維數(shù)組中的數(shù)的和為:" + sum);
//jdk自帶數(shù)組升序排序,也可以搜一下冒泡排序自己實現(xiàn)
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("數(shù)組中的最小的數(shù)為:[" + min + "],其位于數(shù)組的第[" + positions[i].getPosition() + "]位置");
}
if (positions[i].getNum() == max) {
System.out.println("數(shù)組中的最大的數(shù)為:[" + max + "],其位于數(shù)組的第[" + positions[i].getPosition() + "]位置");
}
}
}
}
運行結(jié)果:
這里位置是從0算起的,如果要從1算起就每個位置加1
java定義三個整數(shù)變量a,b,c,求最大值和最小值,方法如下:
public?class?TestA?{
public?static?void?main(String[]?args){
//定義abc三個參數(shù)值
int?a=3;
int?b=32;
int?c=320;
//定義最大值
int?max=0;
//定義最小值
int?min=0;
//假如ab?先設置a為最大值,b為最小值
if(ab){
max=a;
min=b;
}else{
//否則先設置b為最大值,a為最小值
max=b;
min=a;
}
//再拿c和ab間最大值做比較
if(cmax){
max=c;
}else{
//如果b大于c,那最小值肯定是c了
if(bc){
min=c;
}
}
System.out.println("最大值為:"+max);
System.out.println("最小值為:"+min);
}
}
結(jié)果:
最大值為:320
最小值為:3
從鍵盤上輸入10個整數(shù),輸出最小值的完整的Java程序如下:(不用數(shù)組)
import java.util.Scanner;
public class C{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int min=Integer.MAX_VALUE;
System.out.println("請輸入10個整數(shù):");
for(int i=0;i10;i++){
int n=sc.nextInt();
if(nmin) min=n;
}
System.out.println("最小值為"+min);
}
}
運行結(jié)果:
請輸入10個整數(shù):
32 18 49 19 -13 39 391 82 -102 38
最小值為-102
以下程序主要是求得數(shù)組中的最大值和最小值:
public class a {
public static void main(String args[]) {
int a[]={84,40,16,3,10,49,28,76,94,70};
int n;
int min=a[0];
int i;
int max=a[0];
for(n=0;n=9;n++) {
if(maxa[n])
max=a[n];
}
for(i=0;i=9;i++) {
if(mina[i])
min=a[i];
}
System.out.print("max="+max);
System.out.print("min="+min);
}
}
該程序輸出結(jié)果:
數(shù)組A的元素包括:74 48 30 17 62數(shù)組的最大值是:74數(shù)組的最小值是:17
程序說明如下:
第6行聲明整數(shù)變量i 做為循環(huán)控制變量及數(shù)組的索引:另外也聲明存放最小值的變量min與最大值的變量max。
第7行聲明整型數(shù)組A,其數(shù)組元素有5個,其值分別為74、48、30、17、62。
第9行將min與max的初值設為數(shù)組的第一個元素。
第10~18行逐一輸出數(shù)組里的內(nèi)容,并判斷數(shù)組里的最大值與最小值。
第19~20行輸出比較后的最大值與最小值。將變量min與max初值設成數(shù)組的第一個元素后,再逐一與數(shù)組中的各元素相比。比min小,就將該元素的值指定給min存放,使min的內(nèi)容保持最??;同樣的,當該元素比max大時,就將該元素的值指定給max存放,使max的內(nèi)容保持最大。for循環(huán)執(zhí)行完,也就表示數(shù)組中所有的元素都已經(jīng)比較完畢,此時變量min與max的內(nèi)容就是最小值與最大值。
本文所述代碼為比較基礎的示例程序,相信對于Java的初學者仍有一定的借鑒價值。