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

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

為什么平均小值不對數(shù)和哪里錯了

為什么平均小值不對數(shù)和哪里錯了

愛上明早 2016-07-08 10:32:38
?package 練習(xí);public class 第六章練習(xí) {?public static void main(String[] args) {??//定義一個整型數(shù)組,并賦初始值??int[] nums = { 61 , 23 , 4 , 74 , 13 , 148 , 20 };??int max = nums[0];//假定組大致為數(shù)組中的第一個元素??int min = nums[0];//假定最小值為數(shù)組中的第一個元素??double sum = 0 ;//累計值??double age = 0 ;//平均值??for(int i=0;i<nums.length;i++){//循環(huán)遍歷數(shù)組中的元素???//如果當(dāng)前值大于max,則替換max的值???if(nums[i]> nums[0]){????max = nums[i];???}???//如果當(dāng)前值小于min的值,則替換min的值???if(nums[i]< nums[0]){?????? min = nums[i];???}??????//累加求和???sum = sum+nums[i];??}??//求平均值??age = sum/ ('i'+1) ;??System.out.println("數(shù)組中最大的值:"+max);??System.out.println("數(shù)組中最小的值:"+min);??System.out.println("數(shù)組中的平均值:"+age);??System.out.println("數(shù)組中的求和值:"+sum);?}}輸出的是這:數(shù)組中最大的值:148 數(shù)組中最小的值:20 數(shù)組中的平均值:3.2358490566037736 數(shù)組中的求和值:343.0 還有為什么‘i’要用單引號???謝謝啦?
查看完整描述

3 回答

已采納
?
綠洲仙人球

TA貢獻(xiàn)39條經(jīng)驗 獲得超47個贊

您好,題主的代碼一共有三處錯誤,

1)最大值比較不對,不應(yīng)該每次和nums[0]比;既然假定了最大值為nums[0],應(yīng)該每次和max比較

2)最小值比較不對,不應(yīng)該每次和nums[0]比;應(yīng)該每次和min比較

3)平均數(shù)求值不對,應(yīng)該用總數(shù)除以個數(shù),這個的i是個在for循環(huán)里的局部變量,直接用i除,需要把i在for循環(huán)前聲明

以下是改正后的代碼,請參考

	public?static?void?main(String[]?args)?{
		//?定義一個整型數(shù)組,并賦初始值
		int[]?nums?=?{61,?23,?4,?74,?13,?148,?20?};
		int?max?=?nums[0];//?假定組大致為數(shù)組中的第一個元素
		int?min?=?nums[0];//?假定最小值為數(shù)組中的第一個元素
		double?sum?=?0;//?累計值
		double?age?=?0;//?平均值
		int?i?=?0;
		for?(i?=?0;?i?<?nums.length;?i++)?{//?循環(huán)遍歷數(shù)組中的元素
			//?如果當(dāng)前值大于max,則替換max的值
			if?(nums[i]?>?max)?{
				max?=?nums[i];
			}
			//?如果當(dāng)前值小于min的值,則替換min的值
			if?(nums[i]?<?min)?{
				min?=?nums[i];
			}

			//?累加求和
			sum?=?sum?+?nums[i];
		}
		//?求平均值
		age?=?sum?/?i;
		System.out.println("數(shù)組中最大的值:"?+?max);
		System.out.println("數(shù)組中最小的值:"?+?min);
		System.out.println("數(shù)組中的平均值:"?+?age);
		System.out.println("數(shù)組中的求和值:"?+?sum);
	}


查看完整回答
2 反對 回復(fù) 2016-07-08
點擊展開后面1
?
提著褲子

TA貢獻(xiàn)4條經(jīng)驗 獲得超4個贊

這個 i 已經(jīng)不在for循環(huán)里面,所以是訪問不到 i ; 至于(‘i’+1)=106? 因為這個加上了單引號;就是char 類型了;后面進(jìn)行運算時就自動的轉(zhuǎn)成了ascil碼;'i' 的ascil碼是105;這個平均值應(yīng)該是age = sum/nums.length;

查看完整回答
4 反對 回復(fù) 2016-07-08
?
yanrun

TA貢獻(xiàn)317條經(jīng)驗 獲得超240個贊

問題是if(nums[i]> nums[0]),這樣的話是在用數(shù)組的第一個值和當(dāng)前循環(huán)到的值進(jìn)行比較然后把較大的值賦值給max,假設(shè)數(shù)組的第一個值為1,數(shù)組后面的元素的值都大于1,這樣計算出來的最大值會是20而不是148,應(yīng)該改成if (nums[i] > max),最小值同理。這么求平均值貌似是錯誤的,因為會把i的ascii碼值105加1后進(jìn)行計算,而不是除數(shù)組的長度。

查看完整回答
2 反對 回復(fù) 2016-07-08
  • 3 回答
  • 0 關(guān)注
  • 1631 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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