50、请编制程序,从文件in.dat中读取200个整数至数组xx中,不计数组xx最大的数(若
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen("in.dat","r");
for(i=0;i<20;i++)
{for(j=0;j<10;j++)
{fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d ",xx[i*10+j]);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int cnt,xx[N],max;
float pj;
FILE *fw;
int i,max0;
clrscr();
fw=fopen("out.dat","w");
read_dat(xx);
printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);
}
/* 注:本题要注意先去掉最大数然后最求出次大数max及个数cnt。要在求max0时给ma
x任意赋一个不能等于max0的数,只有这样才能保证求次大数max时不会出错。*/
void main()
{
int cnt,xx[N],max;
float pj;
FILE *fw;
int i,max0;
clrscr();
fw=fopen("out.dat","w");
read_dat(xx);
max0=xx[0];
pj=0;
cnt=0;
for(i=1;i<N;i++)
if(max0<xx[i]) max0=xx[i];
else max=xx[i];
for(i=0;i<N;i++)
if(max0>xx[i]&&max<xx[i]) max=xx[i];
for(i=0;i<N;i++)
if(xx[i]==max) cnt++;
else pj+=xx[i];
pj=(float)((int)pj*100/(200-cnt))/100;
printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);
}