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

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么把max6=num[p]; 去掉,答案就是 何昆?

int p,k,max6;

? ? ? ? ? ? string[] name=new string[]{"吳松","錢東宇","伏晨","陳陸","周薇","林日鵬","何昆","關欣"};

? ? ? ? ? ? int[] num=new int[]{89,90,98,56,60,91,93,85};

? ? ? ? ? ? k=0;

? ? ? ? ? ? max6=num[1];

? ? ? ? ? ? for(p=1;p<num.Length;p++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if(num[p]>max6)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? //max6=num[p];

? ? ? ? ? ? ? ? ? ? k=p;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? Console.WriteLine("分數最高的是{0},分數是{1}", name [k],num[k]);


正在回答

2 回答

你好,首先說下,數組下標是從0開始的,我看到你的代碼是把max6=num[1];所以才說了下,一般都是寫成max6=num[0],當然也許是手誤,不過在工作中,一個手誤可能導致了整個程序報錯,然后花費半天或者一天的時間來查找錯誤,這個是很多人掉過的坑。

再說下,運行結果為什么是何昆。其實,在整個項目中,max6的值 都是固定的,都是下標為1的對應的值,也就是“錢東宇”對應的90,在for循環中,本質是從新往后循環的和90相比較,因為”何昆”對應的93是最后一個比90大的值,所以最后就把“何昆”對應的下標賦值給了k,因此 結果就是 何昆。

最后說下,如果運行結果和自己所想的不同,但又不知道怎么回事的話,你可以進行 輸出顯示或者debug調試。輸出顯示就是把不確定的地方的值輸出來,這樣根據值判斷。在這個項目,就可以在for語句中加上輸出語句。

http://img1.sycdn.imooc.com//594538dc0001dddd07540394.jpg,這種方法適合小程序,推薦使用debug調試,在需要查看值上語句加斷點,再運行,選中語句,右擊--》斷點--》插入斷點 就可以了,也可以按F9添加或者刪除斷點,按F10是運行下一步。在局部變量中 就可以看到對應的值了。具體的操作可以百度下,很簡單很實用,http://img1.sycdn.imooc.com//59453a6c0001c30008520410.jpg。如果還有不懂得地方,可以繼續回復我。如果覺得回答還不錯的話,麻煩采納一下哈!

1 回復 有任何疑惑可以回復我~

max6=num[1]; ?//這行把max6固定就等于num[1]=90

?if(num[p]>max6)//你這個比較是拿變量num[p]跟常量max6比較。

max6=num[p];//這句的意思是當num[p]>max6時,會將num[p]的值付給max6。如果沒有這一句你就永遠跟90對比,只要比90大就會使k的值改變。

最后多嘴一句,你這個代碼有問題:max6=num[1];這句應該是這樣max6=num[0];因為數組中取第一個數應該a[0],a[1]是第二個數。不信你可以把第一個成績改成100.就會發現結果不對

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么把max6=num[p]; 去掉,答案就是 何昆?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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