第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在java中從數(shù)組中查找最小值

在java中從數(shù)組中查找最小值

一只甜甜圈 2023-03-17 15:05:41
我正在嘗試從數(shù)組中的用戶輸入中獲取總和、平均值、最大值和最小值。sum、average 和 max 給出了正確的輸出。但是最小值不起作用。我在哪里做錯(cuò)了有人會(huì)幫助我找出答案嗎?import java.util.Scanner;public class minMaxSumAverage {    public static void main(String args[]) {        int n, sum = 0, max, min;        double average = 0;        Scanner s = new Scanner(System.in);        System.out.println("Enter elements you want to input in array: ");        n = s.nextInt();        int a[] = new int[n];        max = a[0];        min = a[0];        System.out.println("Enter all the elements:");        for (int i = 0; i < n; i++) {            a[i] = s.nextInt();            sum += a[i];            average = (double) sum/a.length;            if (a[i] > max) {                max = a[i];            }            if (a[i] < min) {                min = a[i];            }        }        System.out.println("Sum is: " + sum);        System.out.println("Average is: " + average);        System.out.println("Max is: " + max);        System.out.println("Min is: " + min);    }}輸出:Enter elements you want to input in array: 5Enter all the elements:2551064Sum is: 50Average is: 10.0Max is: 25Min is: 0最小值應(yīng)為 4。
查看完整描述

6 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

我已經(jīng)更新了你的代碼。請(qǐng)檢查以下代碼以從所有元素列表中獲取最小值。


輸入 :


在數(shù)組中輸入要輸入的元素:


5


輸入所有元素:


25


5


10


6


4


輸出 :


總數(shù)是:50


平均值為:10.0


最大值為:25


最小值為:4


        Scanner scan = null;

        try {

            int n, sum = 0, max, min;

            double average = 0;

            scan = new Scanner(System.in);

            System.out.println("Enter elements you want to input in array: ");

            n = scan.nextInt();

            int a[] = new int[n];

            max = a[0];

            System.out.println("Enter all the elements:");

            for (int i = 0; i < n; i++) {

                a[i] = scan.nextInt();

                sum += a[i];

                average = (double) sum/a.length;

                if (a[i] > max) {

                    max = a[i];

                }

                /**

                // from here remove logic for get min value.

                if (a[i] < min) {

                   min = a[i];

                }

                **/

            }

            min = a[0];

            for(int i=0;i<a.length;i++){

                if(a[i] < min){

                  min = a[i];

                }

              }

            System.out.println("Sum is: " + sum);

            System.out.println("Average is: " + average);

            System.out.println("Max is: " + max);

            System.out.println("Min is: " + min);

        }

        catch (Exception ex) {

            ex.printStackTrace();

        }finally{

            scan.close();

        }


查看完整回答
反對(duì) 回復(fù) 2023-03-17
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

Java-8開始,您可以使用流在一行中完成此操作:

int[] a = new int[] { 20,11,2,3,4,7,8,90 };
int min = Arrays.stream(a).min().getAsInt();

要獲取最大元素,只需將其替換.min().max()


獲得總和:Arrays.stream(a).mapToInt(Integer::intValue).sum();


查看完整回答
反對(duì) 回復(fù) 2023-03-17
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

作為替代方案,您可能需要考慮 Stream...


public static void main(String args[]) {

    Scanner s = new Scanner(System.in);

    System.out.println("Enter count elements you want to input in array: ");

    int n = s.nextInt();

    int a[] = new int[n];

    System.out.println("Enter all the elements:");

    for (int i = 0; i < n; i++) {

        a[i] = s.nextInt();

    }

    s.close();


    IntSummaryStatistics iss = Arrays.stream(a).summaryStatistics();


    System.out.println("Sum is: " + iss.getSum());

    System.out.println("Average is: " + iss.getSum()/iss.getCount());

    System.out.println("Max is: " + iss.getMax());

    System.out.println("Min is: " + iss.getMin());

}


查看完整回答
反對(duì) 回復(fù) 2023-03-17
?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

因?yàn)?min 初始化為 0。在你的循環(huán)中,你只需要詢問(wèn)你當(dāng)前的數(shù)字是否小于 0。

再次嘗試將數(shù)組的第一個(gè)值指定為最小值。

然后它應(yīng)該工作。


查看完整回答
反對(duì) 回復(fù) 2023-03-17
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

 int a[] = new int[n];

 max = a[0];

 min = a[0];

您已經(jīng)創(chuàng)建了一個(gè)空數(shù)組a。max 和 min 都初始化為 0。這對(duì) max 很好用,但給你的結(jié)果是你看到的 min 的結(jié)果,因?yàn)樵谀銊?chuàng)建的數(shù)組中沒(méi)有比零更小的東西。


要解決此問(wèn)題,請(qǐng) min = a[0];在用值填充數(shù)組后將行添加到 for 循環(huán)中,例如


for (int i = 0; i < n; i++) {

            a[i] = s.nextInt();

            sum += a[i];

            average = (double) sum/a.length;

            min = a[0];

            //if-statements here

然后,min = a[0]將不再為零,而是填充數(shù)組的第一個(gè)值。


查看完整回答
反對(duì) 回復(fù) 2023-03-17
?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

請(qǐng)參考下面的代碼,了解最小、最大、總和、平均功能:


List<Integer> intList= Arrays.asList(70, 80, 10, 20, 40, 50);

    Integer ans=0;

    int sum1= intList.stream().reduce(ans, (x,y) -> x+y);


    System.out.println(sum1);


    int sum2= intList.stream().reduce(ans, Integer::sum);

    System.out.println(sum2);

    int max= intList.stream().max(Integer::compare).get();


    System.out.println(max);


    int min= intList.stream().min(Integer::compare).get();


    System.out.println(min);


    Double avg= intList.stream().collect(Collectors.averagingInt(x-> x));


    System.out.println(avg);


查看完整回答
反對(duì) 回復(fù) 2023-03-17
  • 6 回答
  • 0 關(guān)注
  • 269 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)