C語(yǔ)言入門6-12綜合練習(xí) 出現(xiàn)這個(gè)錯(cuò)誤term does not evaluate to a function
#include<stdio.h> int?main() { ????? int?num; double?average; int?score[10]={67,98,75,63,82,79,81,91,66,84}; num=score[0]+score[1]+score[2]+score[3]+score[4]+score[5]+score[6]+score[7]+score[8]+score[9]; average=num/10; printf("總分:num=%d\n",num); printf("平均分:average=%d\n",average); ???? ???????int?i,j; ???for(i=8;i>=0;i--) ???{ ????for(j=0;j<=i;j++) { ???????????if(score[j]<score[j+1]) ???{ ???int?a; ???a=score[j]; score[j]=score[j+1]; score[j+1]=a; ???} } ???} ??? for(i=0;i<=9;i++) { printf("%d?\n",score(i)); } ????printf("最高分:%d\n",score(0)); printf("最低分:%d\n",score(9)); ???return?0; }
這是我寫的代碼 ?可是放在VC6.0編譯時(shí) :
?printf("最高分:%d\n",score(0));
?printf("最高分:%d\n",score(0));
printf("最低分:%d\n",score(9));
這三句代碼同時(shí)出現(xiàn)相同的錯(cuò)誤:term does not evaluate to a function
我不知道怎么改 麻煩大神求解一下
2016-12-04
問(wèn)題1:average定義的是double 類型,輸出卻是整型,沒(méi)對(duì)上,把%d改成%f(控制下小數(shù)點(diǎn)位數(shù)可改為%.2f)。(還有這里average其實(shí)定義成float類型就好了,沒(méi)必要到double)。
問(wèn)題2:就是問(wèn)題問(wèn)的,排序和最低最高分輸出提示錯(cuò)誤。
這是因?yàn)檫@三個(gè)score(i),score(0),score(9)出錯(cuò)了,這是要輸出數(shù)組元素,是score[i],score[0],score[9]才對(duì)
問(wèn)題3:把問(wèn)題1和2改了之后,程序編譯后,你會(huì)發(fā)現(xiàn)輸出的平均分:average=78.00(按%.2f控制2位小數(shù)點(diǎn)位數(shù)輸出的情況),但實(shí)際相除下來(lái),average=78.60才對(duì),問(wèn)題源自average=num/10,num是整型,10也是,所以num/10也是整型,雖然定義了average為浮點(diǎn)型,但這時(shí)num/10還是取了整值再賦給average。解決辦法1就是強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型:average=(double) num/10 【注意這里寫成(double)(num/10)可不對(duì)。還可以考慮如(int)(x+y)寫成(int)x+y有何區(qū)別】。辦法2就是average=(double) num/10.0【直接把除數(shù)10變成浮點(diǎn)型,這樣方便,其實(shí)這里相當(dāng)于average=num/(double)10】。
2016-12-04
已經(jīng)運(yùn)行成功了 ? ?么么噠 ?嘻嘻嘻 ? ?不努力就去死!?。?!