已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:將第1個數與第200個數進行比較, 若兩數不等, 則取較小者作為下列統計用的符合條件數,若兩數相等, 則不作為符合條件數; 將第2個數與第199個數進行比較,若兩數不等, 則同樣取較小者, 若兩數相等, 則同樣不作為符合條件數; 直至第100個數與第101個數比較為止, 接著計算出這些符合條件數中的'最小值min、最大值max以及這些符合條件數的平均值aver。最後main()函式呼叫寫函式writeDat()把結果輸出到檔案中。
注意: 部分源程式存在檔案PROG1.C檔案中。
程式中已定義: a[200]、min、max、aver
請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。*/#include #define MAX 200int a[MAX], min, max;double aver ;void jsVal(){/**/
int i,j,m,k=0;
min=9999; max=0; aver=0.0;
for(i=0; i < MAX/2; i++)
if(a[i]!=a[MAX-i-1])
{ k++; m=a[i]>a[MAX-i-1]?a[MAX-i-1]:a[i];
aver+=m;
if(max < m)max=m; else if(min>m) min=m;
}
aver/=k;/**/}void readDat(){
int i ;
FILE *fp ;
fp = fopen("", "r") ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;}void main(){
readDat() ;
jsVal() ;
printf("結果min=%d,max=%d,aver=%6.2lfn", min, max, aver) ;
writeDat() ;}writeDat(){
FILE *fp ;
fp = fopen("", "w") ;
fprintf(fp, "%dn%dn%6.2lfn", min, max, aver) ;
fclose(fp) ;}