60、请编制程序,从文件in.dat中读取200个整数至数线xx中,求出最大数max及最大数
的个数cnt和数组xx中值能被3整除或能被7整除的算求增均值pj(保留2位小数)。
#include<conio.h>
#include<stdio.h>
#include <stdlib.h>
#define N 200

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,k=0;

clrscr();
fw=fopen("out.dat","w");
read_dat(xx);

max=xx[0];
 cnt=0;
 pj=0.0;
 for(i=0;i<N;i++)
 {
  if(xx[i]>max)
  {
   max=xx[i];
   cnt=1;
  }
  else
   if(xx[i]==max)
    cnt++;
  if(xx[i]%3==0 || xx[i]%7==0)
  {
   pj=pj+xx[i];
   k++;
  }
 }
 pj=pj/k;
 


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);
}

/* 注:注意本题要直接求出所有数中的最大数,而不象前面题目中的求次最大数。*/
void main()
{
int cnt,xx[N],max;
float pj;
FILE *fw;
int i,k=0;

clrscr();
fw=fopen("out.dat","w");
read_dat(xx);

max=xx[0];
pj=0;
cnt=0;
for(i=1;i<N;i++)
if(max<xx[i]) max=xx[i];
for(i=0;i<N;i++)
{if(xx[i]==max) cnt++;
if(xx[i]%3==0//xx[i]%7==0)
{pj=xx[i];k++;}
}
pj=(float)((int)pj*100/k)/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);
}

返回南开百题目录

www.163164.cn 联系QQ:3149886