永发信息网

怎么解这题啊??

答案:1  悬赏:20  手机版
解决时间 2021-07-18 05:06
  • 提问者网友:感性作祟
  • 2021-07-17 19:38
、请编制程序,从文件in.dat中读取200个整数至数组xx中,不计数组xx最小的数(若
有重复值,则都不计),再求出最小数min及最小数cnt和所剩下200-cnt个数的算求平均
值pj (保留2位小数)。
结果min,cnt,pj输出到out.dat中。
部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。
#include<conio.h>
#include<stdio.h>
#define N 200
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 2021-07-17 19:49

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],min;
float pj;
FILE *fw;


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



printf("\n\nmin=%d,cnt=%d,pj=%6.2f\n",min,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",min,cnt,pj);
fclose(fw);
}



void main()
{
int cnt,xx[N],min;
float pj;
FILE *fw;
int i,min0;


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


min0=xx[0];
pj=0;
cnt=0;
for(i=1;i<N;i++)
if(min0>xx) min0=xx[i];
else min=xx[i];
for(i=0;i<N;i++)
if(min0<xx[i]&&min>xx[i]) min=xx[i];
for(i=0;i<N;i++)
if(xx[i]==min) cnt++;
else pj+=xx[i];
pj=(float)((int)pj*100/(200-cnt))/100;


printf("\n\nmin=%d,cnt=%d,pj=%6.2f\n",min,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",min,cnt,pj);
fclose(fw);
}
对不啊?呵呵!!加油哦!!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯