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

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

打印數(shù)組中最后 10 個(gè)數(shù)字的總和?

打印數(shù)組中最后 10 個(gè)數(shù)字的總和?

幕布斯7119047 2023-07-13 16:50:25
我是java新手,我一生都無(wú)法弄清楚如何解決這個(gè)問(wèn)題。我假設(shè)問(wèn)題與 for(int i = 0; i <= amount; i++){ 行以及之后的所有內(nèi)容有關(guān),我想不出我做錯(cuò)了什么。我想知道我的代碼是否至少接近工作解決方案?任何幫助,將不勝感激。問(wèn)題:編寫(xiě)允許用戶(hù)重復(fù)輸入數(shù)字的 Java 代碼。每次用戶(hù)輸入一個(gè)數(shù)字時(shí),程序應(yīng)打印出最后 10 個(gè)數(shù)字的總數(shù)(如果輸入的數(shù)字為 10 個(gè)或更少,則打印出所有數(shù)字)。按照我的方式,如果用戶(hù)輸入負(fù)數(shù),程序就會(huì)停止。    Scanner in = new Scanner(System.in);    int[] numbersList = new int[10];    int number = in.nextInt();    int amount = 0;    int total = 0;    while(number>=0){ //stop at negative        number = in.nextInt();        amount += 1;        for(int i = 0; i <= amount; i++){            numbersList[i] = number;            for(int j = 0; j < numbersList.length; j++){                total += numbersList[j];            }        }    }    System.out.println(total);我正在努力讓程序正確打印數(shù)組的最后 10 個(gè)數(shù)字,但由于某種原因,它打印的總數(shù)比應(yīng)有的要高得多。輸入示例:1234-1輸出:84當(dāng)正確答案應(yīng)該是 10 時(shí),它打印出 84。
查看完整描述

3 回答

?
慕妹3242003

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

您的第一個(gè) for 循環(huán)是將數(shù)組中的每個(gè)索引分配給最新的輸入。您不需要嵌套 for 循環(huán)來(lái)完成此作業(yè)。這是一個(gè)帶有注釋的示例,解釋了代碼的不同方面。


Scanner in = new Scanner(System.in);

int[] numbersList = new int[10];

int amount = 0;

int total = 0;


do { //stop at negative

    int number = in.nextInt();

    if (number < 0) {

        // if a negative number is entered then stop looping

        break;

    }


    amount += 1;


    // use modulo arithmetic to assign numbers, the accessed index will

    // range from 0 to 9

    numbersList[amount % 10] = number;


    // iterate over numbersList and sum entries

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

        total += numbersList[i];

    }


    // output total

    System.out.println(total);


    // reset total to 0

    total = 0;

} while(number >= 0); // this is redundant since we check earlier


System.out.println(total);


查看完整回答
反對(duì) 回復(fù) 2023-07-13
?
慕姐4208626

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

  1. 只需聲明numberint number;,它就會(huì)自動(dòng)取值 0。無(wú)需詢(xún)問(wèn) Scanner。第一個(gè) int 永遠(yuǎn)不會(huì)被使用,因?yàn)槟阍?while 循環(huán)中請(qǐng)求另一個(gè) int。

  2. 在第 n 輪中,您將用當(dāng)前輪數(shù)替換前 n+1 個(gè)整數(shù)(0 <= i <= n -> n+1 輪;改為使用i < amount)。如果您“玩”超過(guò) 9 輪,這將導(dǎo)致異常。

  3. 每次替換單個(gè)整數(shù)后,您都會(huì)遍歷整個(gè)數(shù)組。請(qǐng)注意,該總數(shù)永遠(yuǎn)不會(huì)重置。

  4. 您并不是在輸入負(fù)數(shù)后立即停止,而是也用這個(gè)負(fù)數(shù)運(yùn)行一輪然后終止。break;因此,如果您發(fā)現(xiàn)結(jié)果是否定的,請(qǐng)使用 a number(因此,請(qǐng)?jiān)趶膾呙鑳x獲取結(jié)果后進(jìn)行測(cè)試)。

因此,您可以對(duì)以下數(shù)組求總和(省略尾隨 0):

[2] //2

[2,2] //2 + 2 + 2 = 6

[3,2] //6 + 3 + 2 = 11

[3,3] // 11 + 3 + 3 = 17

[3,3,3] // 17 + 3 + 3 + 3 = 26

[4,3,3] // 26 + 4 + 3 + 3 = 36

[4,4,3] // 36 + 4 + 4 + 3 = 47

[4,4,4] // 47 + 4 + 4 + 4 = 59

[4,4,4,4] // 59 + 4 + 4 + 4 + 4 = 75

[-1,4,4,4] // 75 - 1 + 4 + 4 + 4 = 86

[-1,-1,4,4] // 86 - 1 - 1 + 4 + 4 = 92

[-1,-1,-1,4] // 92 - 1 - 1 - 1 + 4 = 93

[-1,-1,-1,-1] // 91 - 1 - 1 - 1 - 1 = 89

[-1,-1,-1,-1,-1] // 89 - 1 - 1 - 1 - 1 - 1 = 84


查看完整回答
反對(duì) 回復(fù) 2023-07-13
?
猛跑小豬

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

下面的代碼也有效。


        ArrayList<Integer> numbersList = new ArrayList<>();

        Scanner in = new Scanner(System.in);

        int number = in.nextInt();

        int total = 0;

        while (number>=0) { //stop at negative

        //store all numbers in ArrayList

        numbersList.add(number);

        //for the first 10 numbers we can just add them as follows

        if(numbersList.size()<=10) {

                total += number;

                System.out.println(total);

        }

        //if user imputs more than 10 numbers we need to count the total of the last 10 numbers so:

        else

        {

                //Restore total to 0 for recount

                total =0;

                //iterate Arraylist backwards for the last 10 values inputed in it

        for(int j = 10; j >=1  ; j--) {

                total += numbersList.get(numbersList.size()-j);

        }

                System.out.println(total);

        }

        //get next number

        in = new Scanner(System.in);

        number = in.nextInt();

        }


        System.out.println(total);


查看完整回答
反對(duì) 回復(fù) 2023-07-13
  • 3 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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