6、 已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:从数组a的头开始,依次取每20个数中的最小值组成一个数, 这样可以获得10个新数并存入数组b中,接着把数组b中的数按从大到小的顺序重新存入数组b中。最后main()函数调用写函数writeDat()把结果b输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义: a[200]、b[10]
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/#include #define MAX 200int a[MAX], b[10];void jsVal(){/**/
int i,j,k=0;
for(i=0; i < 10; i++)
{ b[i]=a[k++];
for(j=1; j < MAX/10; j++,k++)
if(b[i]>a[k]) b[i]=a[k];
}
for(i=0; i < 9; i++)
for(j=i+1; j < 10; j++)
if(b[i] < b[j])
{ k=b[i]; b[i]=b[j]; b[j]=k;}/**/}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(){
int i ;
readDat() ;
jsVal() ;
for(i = 0 ; i < 10 ; i++)
printf("b[%d]=%d\n", i, b[i]) ;
writeDat() ;}writeDat(){
FILE *fp ;
int i ;
fp = fopen("out.dat", "w") ;
for(i = 0 ; i < 10 ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp) ;}
责任编辑:小草