已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù), 并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:將第1個數(shù)與第200個數(shù)進行比較, 若兩數(shù)不等, 則取較大者作為下列統(tǒng)計用的符合條件數(shù),若兩數(shù)相等, 則不作為符合條件數(shù); 將第2個數(shù)與第 199個數(shù)進行比較,若兩數(shù)不等, 則同樣取較大者, 若兩數(shù)相等, 則同樣不作為符合條件數(shù); 直至第100個數(shù)與第101個數(shù)比較為止, 接著計算出這些符合條件數(shù)中的最小值min、最大值max以及這些符合條件數(shù)的平均值aver。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結果輸出到 OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定義: a[200]、min、max、aver
請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、
讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。
*/#include
#define MAX 200int a[MAX], min, max;double aver ;
void jsVal()
{
int b[MAX/2], i, n=0;
for(i = 0; i < MAX/2; i++)
if(a[i]!=a[MAX-i-1])
b[n++] = a[i] > a[MAX-i-1] ? a[i] : a[MAX-i-1];
max=min=b[0]; aver=b[0];
for(i = 1; i < n; i++)
{ aver+=b[i];
if(b[i] > max) max=b[i]; else if(b[i] < min) min=b[i];
}
aver=aver/n;/**/}void readDat(){
int i ;
FILE *fp ;
fp = fopen("in.dat", "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.2lf\n", min, max, aver) ;
writeDat() ;}writeDat(){
FILE *fp ;
fp = fopen("out.dat", "w") ;
fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
fclose(fp)
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |