簡體   English   中英

使用來自兩個數組的信息來計算第三個數組的內容

[英]Using info from two arrays to calculate contents of third array

我有一個包含一個國家總人口的數組和另一個包含每個國家/地區的 COVID 病例總數的數組。 我需要將病例數除以總人口並將百分比存儲在第三個數組中。 雖然我堅持語法,但我班上的任何人都可以在明天之前進行外展。 任何人都可以幫助我通過這一步嗎? 我嘗試了很多不同的方法來獲取新的百分比數組,但沒有任何效果。 我不能使用 int 作為百分比,因為我的教授希望它在小數點后有四位。 示例或書中沒有任何參考資料與我正在嘗試做的事情相匹配。

預先感謝您的建議!

int[] cases = {10_036_282, 8_553_657, 5_675_032, 1_856_292, 1_781_997, 1_381_218, 1_250_499, 1_216_747, 1_149_068, 967_825};

int[] population = {327_096_265, 1_352_647_786, 209_469_323, 64_990_511, 145_734_038, 46_692_858, 44_361_150, 67_141_684, 49_661_048, 126_190_788};
    

//必須根據病例數和人口計算病例的百分比。

for (int i = 0; i < countries.length; i++){
    double percentage[i] = ((cases[i] / population[i]) * 100);  
}

除非另有明確指示,否則您應該使用雙精度表示百分比。 否則,cases[i]/population[i] 通常會導致 0

double[] percentage = new double[...];
percentage[i] = ((cases[i] / (double)population[i]) * 100); 

為了簡化計算,只需將所有內容放入 double 中,然后將計算出的值轉換為 int 並存儲在數組中。

干得好!

import java.util.Queue; 
import java.util.LinkedList; 
import java.util.Arrays; 

class Main{
    public static void main (String[] args) {
        int[] cases = {10_036_282, 8_553_657, 5_675_032};
        int[] population = {327_096_265, 1_352_647_786, 209_469_323};
        int[] percentage = new int[cases.length];
        for(int i = 0; i < cases.length; i++){
            double temp = ((double)cases[i] / (double)population[i] ) * 100;
            int pr = (int) temp;
            percentage[i] = pr;
        }
        System.out.println(Arrays.toString(percentage));
    }
}

您的所有數字都是整數,整數除以整數是一個整數,首先您需要將一個或所有值轉換為double ,其次您用 4 個小數點表示,因此您需要將十進制數格式化如下:

int[] cases = { 10_036_282, 8_553_657, 5_675_032, 1_856_292, 1_781_997, 1_381_218, 1_250_499, 1_216_747,
        1_149_068, 967_825 };

int[] population = { 327_096_265, 1_352_647_786, 209_469_323, 64_990_511, 145_734_038, 46_692_858, 44_361_150,
        67_141_684, 49_661_048, 126_190_788 };

double[] average = new double[cases.length];

for (int i = 0; i < average.length; i++) {
    average[i] = ((cases[i] / (double)population[i]) * 100.0);
    average[i] = Double.parseDouble(String.format("%.4f", average[i]));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM