Por favor preparar función ReadDat () para lograr leer 1000 entero decimal de archivo IN.DAT en una matriz en xx:
Por favor, prepare la función Calcular () se calcula, respectivamente, en un número par de xx incluso, el valor promedio Ave1 impar, número par y el valor ave2 promedio de totfc varianza, después de la WriteDat llamada de función () OUT.DAT envía el resultado a un archivo.
El cálculo de la varianza de la siguiente fórmula:
N_____2
totfc = 1 / NΣ (xx [i] -ave2)
i = 1 siempre que n es un número par de, xx [i] es un número par, ave2 un valor promedio incluso.
El formato de los archivos de datos originales: cada línea de almacenamiento de número 10, y separados por comas. (Cada número mayor que 0 y menor que o igual a 2,000).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
int xx [MAX], impar = 0, incluso = 0;
doble Ave1 = 0,0, ave2 = 0,0, totfc = 0,0;
void WriteDat (void);
int ReadDat (void) {int i; FILE * fp;
if ((fp = fopen ( “IN.DAT”, “r”)) == NULL) volver 1;
/ Función Compilado ReadDat () de la sección *** /
for (i = 0; i <MAX; i ++)
{Fscanf (fp, "% d", y xx [i]);
if ((i + 1)% 10 == 0)
fscanf (fp, "\ n"); }
/ ******************************************* /
fclose (fp);
return 0;
}
Calcular vacío (vacío)
{Int i, aa [MAX];
for (i = 0; i <MAX; i ++)
yy [i] = 0;
for (i = 0;
i <MAX; i ++)
si (xx [i]% 2 == 0) {yy [incluso ++] = xx [i]; ave2 + = xx [i];}
else {++ extraña; Ave1 + = xx [i];}
si (impar == 0) Ave1 = 0;
más Ave1 / = impar;
si (incluso == 0) ave2 = 0;
más ave2 / = incluso;
for (i = 0; i <incluso; i ++)
totfc + = (yy [i] -ave2) * (yy [i] -ave2) / impar;
}
vacío principal()
{
int i;
for (i = 0; i <MAX; i ++) xx [i] = 0;
si (ReadDat ()) {
printf ( "fichero de datos IN.DAT no se puede abrir \ 007 \ n");
regreso;
}
Calcular();
printf ( “HORNO =% d \ nAVE1 =% f \ nAVER2 =% f \ nTOTFC =% f \ n”, incluso, Ave1, ave2, totfc);
WriteDat ();
}
WriteDat vacío (vacío)
{
FILE * fp;
int i;
fp = fopen ( “OUT.DAT”, “w”);
fprintf (fp, "% d \ n% f \ n% f \ n% f \ n", incluso, Ave1, ave2, totfc);
fclose (fp);
}