為什么把max6=num[p]; 去掉,答案就是 何昆?
int p,k,max6;
? ? ? ? ? ? string[] name=new string[]{"吳松","錢東宇","伏晨","陳陸","周薇","林日鵬","何昆","關(guān)欣"};
? ? ? ? ? ? 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("分?jǐn)?shù)最高的是{0},分?jǐn)?shù)是{1}", name [k],num[k]);
2017-06-17
你好,首先說下,數(shù)組下標(biāo)是從0開始的,我看到你的代碼是把max6=num[1];所以才說了下,一般都是寫成max6=num[0],當(dāng)然也許是手誤,不過在工作中,一個(gè)手誤可能導(dǎo)致了整個(gè)程序報(bào)錯(cuò),然后花費(fèi)半天或者一天的時(shí)間來(lái)查找錯(cuò)誤,這個(gè)是很多人掉過的坑。
再說下,運(yùn)行結(jié)果為什么是何昆。其實(shí),在整個(gè)項(xiàng)目中,max6的值 都是固定的,都是下標(biāo)為1的對(duì)應(yīng)的值,也就是“錢東宇”對(duì)應(yīng)的90,在for循環(huán)中,本質(zhì)是從新往后循環(huán)的和90相比較,因?yàn)椤焙卫ァ睂?duì)應(yīng)的93是最后一個(gè)比90大的值,所以最后就把“何昆”對(duì)應(yīng)的下標(biāo)賦值給了k,因此 結(jié)果就是 何昆。
最后說下,如果運(yùn)行結(jié)果和自己所想的不同,但又不知道怎么回事的話,你可以進(jìn)行 輸出顯示或者debug調(diào)試。輸出顯示就是把不確定的地方的值輸出來(lái),這樣根據(jù)值判斷。在這個(gè)項(xiàng)目,就可以在for語(yǔ)句中加上輸出語(yǔ)句。
2017-06-17
max6=num[1]; ?//這行把max6固定就等于num[1]=90
?if(num[p]>max6)//你這個(gè)比較是拿變量num[p]跟常量max6比較。
max6=num[p];//這句的意思是當(dāng)num[p]>max6時(shí),會(huì)將num[p]的值付給max6。如果沒有這一句你就永遠(yuǎn)跟90對(duì)比,只要比90大就會(huì)使k的值改變。
最后多嘴一句,你這個(gè)代碼有問題:max6=num[1];這句應(yīng)該是這樣max6=num[0];因?yàn)閿?shù)組中取第一個(gè)數(shù)應(yīng)該a[0],a[1]是第二個(gè)數(shù)。不信你可以把第一個(gè)成績(jī)改成100.就會(huì)發(fā)現(xiàn)結(jié)果不對(duì)