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

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

誰幫我看哈這段簡單的代碼,怎么超出范圍了?

誰幫我看哈這段簡單的代碼,怎么超出范圍了?

Mr_hee 2016-05-20 21:09:07
package com.software;public class bianChen6_6 { public static void main(String[] args) {? ? ? int scores[] = new int[]{61,23,4,74,13,148,20};? ? ? int max=scores[0];? ? ? int min=scores[0]; ? ??? ? ? int i = 0;? ? ? double count=0;? ? ? double avg=0;? ? ? for(;i<scores.length;i++){? ? // 如果當前值大于max,則替換max的值? ? ?if(scores[i]>max){? ? ?max = scores[i];? ? ?}? ? // 如果當前值小于min,則替換min的值? ? ?if(scores[i]<min){? ? ?min = scores[i];? ? ?}? ? ?//累加求和? ? ?count = count+scores[i];? ? ? }? ? ? ? ? //求平均值 ?avg = count%scores[i];? ? ? System.out.println("數組中的最大值是"+max);? ? ? System.out.println("數組中的最小值是"+min);? ? ? System.out.println("數組的和值是"+count);? ? ? System.out.println("數組的平均值是"+avg); }}這是我的代碼,運行后怎么提示超出數組長度?幫我看一哈。
查看完整描述

6 回答

已采納
?
IT界小嫩草一枚

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

  1. 為什么會報數組越界。 因為當循環跳出的那一刻是i=scores.length, 即i=7, 在你求平均值的時候寫scores[i]就是scores[7], 你定義的數組下標最大是6, 所以越界

  2. 求平均值。 應該是綜合除以個數,即count÷i或者count÷scores.lengh(用這種方式比較好)。

  3. count÷scores.length應該寫成count/scores.length, %是取余。

  4. 正確的輸出結果是:?

    數組中的最大值是148

    數組中的最小值是4

    數組的和值是343.0

    數組的平均值是49.0

希望能幫到你:)

查看完整回答
2 反對 回復 2016-05-20
?
farrell4303280761

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

最后一次循環越界

查看完整回答
反對 回復 2016-05-21
?
黃繼琤

TA貢獻1條經驗 獲得超0個贊

因為你循環處理之后,跳出循環,i=7
然后執行到avg?=?count%scores[i];時,scores[7]當然越界了


查看完整回答
反對 回復 2016-05-21
?
慕慕1370455

TA貢獻1條經驗 獲得超0個贊

avg=count/i(或scores.length),求平均值不是取余,不用%

查看完整回答
反對 回復 2016-05-20
?
慕后端0557998

TA貢獻1條經驗 獲得超0個贊

當 i 大于數組下標時(scores[i]不存在)跳出for循環 ?然后就報錯咯?

查看完整回答
反對 回復 2016-05-20
?
952711

TA貢獻1條經驗 獲得超0個贊

avg=count/score[].length改成這樣看看

查看完整回答
反對 回復 2016-05-20
  • 6 回答
  • 0 關注
  • 2047 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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