📄 1_pro.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -