亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算大于平均數的百分比?

如何計算大于平均數的百分比?

翻閱古今 2024-01-05 10:58:51
public static void main(String[] args) {    int avg=0,sum=0,percentage=0;    Scanner input = new Scanner(System.in);    int[]arr=new int [6];    System.out.println("Enter all the elements: ");    for(int i=0; i<6; i++)    {        arr[i]=input.nextInt();        sum+=arr[i];        avg=sum/6;    }    System.out.println("Average is: "+avg);    for(int i=0;i<arr.length;i++)    {         if(arr[i]>avg)        {                percentage=(arr[i]*100/6);        }    }    System.out.println("Percentage is: "+percentage+"%");}例如,如果數組中有 3 個元素大于平均值,則百分比為 3*100/6=50%
查看完整描述

5 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

您正在循環中計算平均值,這效率不高,因為該值在每次迭代時都會被破壞。最好只在循環中保留總和,并在第一個循環后計算平均值。

話雖這么說,您的代碼中只有兩個主要(功能)問題:

  • 第一個是循環中的百分比處理 - 您缺少“+=”并且不應使用 arr[i] 值。

  • 第二個是百分比的準確性,應該是 double (例如)而不是 int (平均值相同 - 如果確實需要)。

總結 :

  • 將百分比聲明為 double :double percentage = 0;

  • 替換percentage=(arr[i]*100/6);=>percentage += (100.0/6);

  • [可選]截斷/舍入顯示的百分比:例如System.out.printf("Percentage is: (%.2f) %%", percentage);

干杯!


查看完整回答
反對 回復 2024-01-05
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

您需要找到大于平均值的值的總數。然后,將總數除以最大值,然后乘以 100 以返回百分比。例如,如果我們使用 6, 5, 4, 3, 2, 1; 平均值為 3。大于 3 的總數為 3 (6, 5, 4)。然后,我們將 3(總計)除以 max (6) 得到 0.5,然后乘以 100 得到 50 (50%)。


array = 6, 5, 4, 3, 2, 1

average = 3

max = 6

percentage = average / max * 100

    public static void main(String[] args) {


        int avg=0,sum=0,percentage=0;


        Scanner input = new Scanner(System.in);


        int[]arr=new int [6];


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


        for(int i=0; i<6; i++)

        {

            arr[i]=input.nextInt();

            sum+=arr[i];

            avg=sum/6;

        }

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


        int greaterThan = 0;


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

        {

             if(arr[i]>avg) {

                    greaterThan++;

            }

        }

        percentage = (int) (((double) greaterThan / (double) arr.length) * 100D);


        System.out.println("Percentage is: "+percentage+"%");


 }


查看完整回答
反對 回復 2024-01-05
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

你的計算在底部是錯誤的。


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

  if(arr[i]>avg)

    {

       percentage=(arr[i]*100/6);

    }

}

在這里,正確的計算是


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

  if(arr[i]>avg)

    {

       percentage += (100/6);

    }

}

arr[i]您必須將大于平均值的次數相加,然后將計數乘以100/6。上面的代碼正是這樣做的。


注意:percentage變量應該是浮點數而不是整數


查看完整回答
反對 回復 2024-01-05
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

您可以使用初始化為零的計數器變量首先對元素進行計數,然后您可以使用以下命令簡單地計算百分比COUNTER * 100 / (number of elements)



查看完整回答
反對 回復 2024-01-05
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

首先,要計算全局平均值,請在最后執行,使用數組長度更通用


double sum=0;

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

? ? arr[i] = input.nextInt();

? ? sum += arr[i];

}

avg = sum/input.length;

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

然后要計算大于平均值的部分,找到有多少個值大于平均值,然后除以總數:


double greaterAvg = 0;

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

? ? if(arr[i]>avg){

? ? ? ? ? ? greaterAvg++;

? ? }

}

double percentage = 100 * greaterAvg / input.length

System.out.println("Percentage is: "+percentage+"%");

我用doubletype 去掉int division problem:Int 除法:為什么結果是 1/3 == 0?


查看完整回答
反對 回復 2024-01-05
  • 5 回答
  • 0 關注
  • 322 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號