您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  计算机等级考试三级机试C语言编程详细解析三 【注册男护士专用博客】          

计算机等级考试三级机试C语言编程详细解析三

www.nanhushi.com     佚名   不详 

   三、正整数排序求平均值(包括将数拆散、求最大最小值)

  已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到OUT.DAT文件。

  例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2.

  部分源程序已给出。

  程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2

  请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。


  #include
  int a[300],cnt=0;
  double pjz1=0.0,pjz2=0.0;
  jsValue()
  {
  }
  main()
  {
  int i;
  readDat();
  jsValue();
  writeDat();
  printf("cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pjz2=%7.21f\n" ,cnt,pjz1,pjz2);
  }


  readDat()
  {
  FILE *fp;
  int i;
  fp=fopen(" in.dat" ," r" );
  for(i=0,i<300;i++)fscanf(fp,"%d" ,&a[i]);
  fclose(fp);
  }
  writeDat()
  {
  FILE *fp;
  int i;
  fp=fopen(" out.dat" ," w" );
  fprintf(fp," %d\n%7.21f\n%7.21f\n" ,cnt,pjz1,pjz2);
  fclose(fp);
  }

  注:该题的关键在于会不会取出一个数的个、十、百、千位上的数。a[i]%10对10求余结果为个位数,a[i]%100/10先对100求余得出后两位数然后再除10,由于为整数因此得出上一个后两位数的第一位。依此类推。*/


  jsvalue()
  {
  int i,g,s,b,q,k=0;
  for(i=0;i<300;i++)
  {g=a[i]%10;
  s=a[i]%100/10;
  b=a[i]/100%10;
  q=a[i]/1000;
  if((q+g)==(s+b)) {cnt++;pjz1+=a[i];}
  else {k++;pjz2+=a[i];}
  }
  pjz1/=cnt;
  pjz2/=k;
  }

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目