已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:從陣列a的`頭開始,依次每20個數的平均值組成一個新數,這樣可以獲得10個新數並存入陣列b中,接著把陣列b中的數按從小到大的順序重新存入陣列b中。最後main( )函式呼叫寫函式writeDat()把結果b輸出到檔案中。
注意: 部分源程式存在檔案PROG1.C檔案中。
程式中已定義: a[200]、b[10]
請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。*/#include #define MAX 200int a[MAX];double b[10] ;void jsVal(){/**/
int i,j,k=0;
double t;
for(i=0; i<10; i++)
{ b[i]=a[k++];
for(j=1; j<20; j++)
b[i]+=a[k++];
b[i]/=20;
}
for(i=0; i < 9; i++)
{ k=i;
for(j=i+1; j<10; j++)
if(b[k] > b[j]) k=j;
if(k!=i)
{ t=b[k]; b[k]=b[i]; b[i]=t;}
}/**/}void readDat(){
int i ;
FILE *fp ;
fp = fopen("", "r") ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;}void main(){
int i ;
readDat() ;
jsVal() ;
for(i = 0 ; i < 10 ; i++)
printf("b[%d]=%7.2lfn", i, b[i]) ;
writeDat() ;}writeDat(){
FILE *fp ;
int i ;
fp = fopen("", "w") ;
for(i = 0 ; i < 10 ; i++) fprintf(fp, "%7.2lfn", b[i]) ;
fclose(fp) ;}
Copyright ©2024 才華齋 All Rights Reserved.