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

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

對數組中大于輸入值的數字求和

對數組中大于輸入值的數字求和

三國紛爭 2023-12-13 16:24:18
需要將數組中大于輸入數字的所有數字相加。種子只是為了可以復制輸出。例子:[12,16,45,3,32]輸入值:30輸出:77import java.util.*;    public class SumAbove {        public static void main(String[] args) {            Scanner scnr = new Scanner(System.in);            int seed = scnr.nextInt();            Random rand = new Random(seed);            System.out.println("Enter a positive integer between 1-100 to search above:");            int minVal = scnr.nextInt();            int[] arr = new int[rand.nextInt(100)+1];            for (int i=0; i<arr.length; i++) {                arr[i] = rand.nextInt(100)+1;            }            System.out.println(Arrays.toString(arr));             int sum = 0;             for (int i=0; i<arr.length; i++) {             if (arr[i]>minVal) {                    sum += i;                }             }            System.out.println(sum);        }    }
查看完整描述

4 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

sum += i;您sum += arr[i];也只需要一個循環(因為您知道第一個循環之前的最小值),而不是您想要的(如前所述)。喜歡,


int minVal = scnr.nextInt(), sum = 0;

int[] arr = new int[rand.nextInt(100) + 1];

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

    arr[i] = rand.nextInt(100) + 1;

    if (arr[i] > minVal) {

        sum += arr[i];

    }

}

System.out.println(Arrays.toString(arr));

System.out.println(sum);


查看完整回答
反對 回復 2023-12-13
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

sum += i用。。。來代替sum += arr[i]。

變量i只是位置。arr[i]是該位置的值。


查看完整回答
反對 回復 2023-12-13
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

public static void main(String[] args) {


    int nums[] = { 12, 16, 45, 3, 32 };

    int value;

    int sum = 0;


    System.out.println("Enter a positive integer between 1-100 to search above: ");

    Scanner sc = new Scanner(System.in);

    value = sc.nextInt();


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

        if (nums[i] > value)

            sum = nums[i] + sum;

    }

    System.out.println(sum);

}


查看完整回答
反對 回復 2023-12-13
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

以下是如何在 Java 8+ 中使用流來實現這一點。


      int nValues = 5;

      int minValue = 1;

      int maxValue = 30;

      Random r = new Random();

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

         int[] values = r.ints(nValues, minValue, maxValue + 1).toArray();


         // min to sum is the threshold

         int minToSum = r.nextInt(7) + 10; // between 10 an 16 inclusive



         int sum = Arrays.stream(values).filter(m -> m > minToSum).sum();


         System.out.println("sum = " + sum + " for greater than " + minToSum

               + " : " + Arrays.toString(values));

      }

以下輸出。


sum = 65 for values greater than 11 : [2, 10, 14, 23, 28]

sum = 92 for values greater than 10 : [13, 18, 15, 19, 27]

sum = 94 for values greater than 12 : [25, 6, 14, 25, 30]

sum = 54 for values greater than 10 : [14, 8, 14, 26, 5]

sum = 22 for values greater than 15 : [15, 8, 13, 22, 14]

sum = 28 for values greater than 13 : [3, 28, 9, 6, 5]

sum = 87 for values greater than 13 : [5, 18, 25, 21, 23]

sum = 31 for values greater than 13 : [16, 7, 12, 2, 15]

sum = 42 for values greater than 15 : [7, 22, 20, 10, 5]

sum = 40 for values greater than 12 : [2, 2, 13, 27, 9]


查看完整回答
反對 回復 2023-12-13
  • 4 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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