1_pro.c

来自「C源代码 计算机等级考试C语言上机题」· C语言 代码 · 共 64 行

C
64
字号
#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>
#define  MAX  1000
int xx[MAX],odd=0,even=0;
double ave1=0.0,ave2=0.0,totfc=0.0;
void WriteDat(void);
int ReadDat(void)
{
  FILE *fp;
int i,j;
  if((fp=fopen("IN60.DAT","r"))==NULL)  return 1;


  fclose(fp);
  return 0;
}
int ReadDat(void)
{
  FILE *fp;
  int i,j;
  if((fp=fopen("IN60.DAT","r"))==NULL)  return 1;
  for(i=0;i<100;i++)
  {
    for(j=0;j<10;j++)
      fscanf(fp,"%d,",&xx[i*10+j]);
    fscanf(fp,"\n");
    if(feof(fp))  break;
  }
  fclose(fp);
  return 0;
}
void Compute(void)
{
  int i,yy[MAX];
  for(i=0;i<1000;i++)
    if(xx[i]%2!=0)  
     { odd++;  ave1+=xx[i];  yy[odd-1]=xx[i]; }
    else  
     { even++;  ave2+=xx[i]; }
  ave1/=odd;        /*求数组xx中所有奇数的平均值*/
  ave2/=even;       /*求数组xx中所有偶数的平均值*/
  for(i=0;i<odd;i++)
    totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd;  /*计算所有奇数的方差*/
}
void main()
{
  int i;
  for(i=0;i<MAX;i++)   xx[i]=0;
  if(ReadDat())
  { printf("数据文件IN60.DAT不能打开!\007\n"); return; }
  Compute();
  printf( "ODD=%d\nAVE1=%f\nAVE2=%f\nTOTFC=%f\n",odd,ave1,ave2,totfc);
  WriteDat();
}
void WriteDat(void)
{
  FILE *fp;
  int i;
  fp=fopen("OUT60.DAT","w");
  fprintf(fp,"%d\n%lf\n%lf\n%lf\n",odd,ave1,ave2,totfc);
  fclose(fp);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?