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

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

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

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

愛(ài)上明早 2016-07-08 10:32:38
?package 練習(xí);public class 第六章練習(xí) {?public static void main(String[] args) {??//定義一個(gè)整型數(shù)組,并賦初始值??int[] nums = { 61 , 23 , 4 , 74 , 13 , 148 , 20 };??int max = nums[0];//假定組大致為數(shù)組中的第一個(gè)元素??int min = nums[0];//假定最小值為數(shù)組中的第一個(gè)元素??double sum = 0 ;//累計(jì)值??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’要用單引號(hào)???謝謝啦?
查看完整描述

3 回答

已采納
?
綠洲仙人球

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

您好,題主的代碼一共有三處錯(cuò)誤,

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

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

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

以下是改正后的代碼,請(qǐng)參考

	public?static?void?main(String[]?args)?{
		//?定義一個(gè)整型數(shù)組,并賦初始值
		int[]?nums?=?{61,?23,?4,?74,?13,?148,?20?};
		int?max?=?nums[0];//?假定組大致為數(shù)組中的第一個(gè)元素
		int?min?=?nums[0];//?假定最小值為數(shù)組中的第一個(gè)元素
		double?sum?=?0;//?累計(jì)值
		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 反對(duì) 回復(fù) 2016-07-08
點(diǎn)擊展開(kāi)后面1
?
提著褲子

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

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

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

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

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

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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