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

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

大神快看,運行結果只有最小值不對,一直是零。

大神快看,運行結果只有最小值不對,一直是零。

潮男123 2016-04-11 16:58:34
?Scanner input=new Scanner(System.in); ? ? ? ?int[] nums = new int[3]; ? ? ? ?int max = nums[0]; // 假定最大值為數組中的第一個元素 ? ? ? ?int min ?= nums[0]; // 假定最小值為數組中的第一個元素 ? ? ? ?double sum = 0;// 累加值 ? ? ? ?double avg = 0;// 平均值 ? ? ? ?for (int i = 0; i < nums.length; i++) { ? ? ? ?nums[i]=input.nextInt(); ? ? ? ?// 如果當前值大于max,則替換max的值 ? ? ? ?if(nums[i]>max){ ? ? ? ? max=nums[i]; ?? ? ? ? ?} ? ? ? ?// 如果當前值小于min,則替換min的值 ? ? ? ?else if(nums[i]<min) ? ? ? ?{ ? ? ? ? ? ?min=nums[i];? ? ? ? ?} ? ? ? ?// 累加求和 ? ? ? ?sum=sum+nums[i]; ? ? ? ?} ? ? ? ?// 求平均值 ? ? ? avg=sum/nums.length; ? ? ? ?System.out.println("數組中的最大值:" + max); ? ? ? ?System.out.println("數組中的最小值:" + min); ? ? ? ?System.out.println("數組中的平均值:" + avg); ? ?} }
查看完整描述

3 回答

已采納
?
guozhchun

TA貢獻103條經驗 獲得超76個贊

//?還沒有讀取數據放入數組中就進行以下的操作,實際上相當于?int?max?=?0;?int?min?=?0
//?這樣如果讀取的數都是大于0,那么最小值會一直是0,如果讀取的數都小于0,那么最大值會一直為0
int?max?=?nums[0];?//?假定最大值為數組中的第一個元素
int?min??=?nums[0];?//?假定最小值為數組中的第一個元素

解決方法有兩種:一是把最大值設得足夠小,讓所有讀取的數都比它大,同時把最小值設得足夠大,讓所有讀取的數都比它小。另一種方法是先讀取所有的數,然后把第一個值賦給 min 和 max,然后重新用一個循環來比較得到結果

查看完整回答
反對 回復 2016-04-12
  • 潮男123
    潮男123
    大神你好,用鍵盤輸入的方法怎么實現“先讀取所有數”呢?這種方法的程序怎么寫?
  • guozhchun
    guozhchun
    這回復居然沒有空格縮進,我也是醉了
?
慕無忌3351045

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

int min ?= nums[0];?此時還未從鍵盤輸入,所以nums數組中每一項都為初始化的值:0

因為你的最小值min一開始就賦值為0了,你之后輸入的數都大于0,所以最小值會一直為0呀

查看完整回答
反對 回復 2016-04-12
  • 3 回答
  • 0 關注
  • 1645 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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