데이터 내의 최소, 평균 및 최대 값을 생성하기 위해 txt 파일에서 데이터를 정렬하는 기능을 만들고 있습니다.C 파일에 대한 포인터를 인수로 함수에 전달
여러 파일에서이 기능을 다시 사용하고 싶습니다. 따라서, 파일에 대한 포인터를 인수로 함수에 전달하고 싶습니다. 그러나 컴파일러에서 다음과 같은 오류가 발생합니다 :
LA1.c : 19 : 10 : 오류 : 알 수없는 형식 이름 'FILE' void mmm (FILE * ifile, int *, int * min, int * max, float * mu);
아래 코드를 첨부했습니다. 외래 변수의 일부를 나중에 예상 했으므로 제외 시키십시오. 그러나이 프로그램의 대부분을 완료하지 않았습니다. 어떤 도움을 주셔서 감사합니다.
미리 감사드립니다. 컴파일러는 아직 FILE
유형의 정의를 볼 수 없습니다, 그래서
/* Purpose: (1) Sort Data from 5 different years (2) Calculate Standard Deviation */
/* (3) find max & min from each set (4) calculate deviation standard deviation */
/* units, AKA σ (5) convert to letter grade */
/*************************************************************************/
/* Outline: (A) funct: scan data ifile (main) calc mean (μ), max, min */
/* (B) funct: rescan data and calc sigma (C) main: Rescan data, calc Δ μετα' σ and letter */
/* grade each for each datum. (D) Print to minitor in main. Use dow while?loop for rows*/
/*************************************************************************/
/*prototypes*/
void mmm(FILE *ifile, int *i, int *min, int *max, float *mu);
/* mmm stands for min, max, mean */
float sigma (int *num, float *sigma); /*calculates sigma(standard deviation) */
/* libraries */
#include <stdio.h>
#include <math.h>
void main (void) {
/* main variable declarations max of i vars used for rows loop counter in main */
float sigma, mu;
int i, i09, i10, i11, i12, i13, min, max, f09max, f09min, f10max, f10min, f11max,
f11min, f12max, f12min, f13max, f13min;
FILE *ifile;
ifile=fopen("2009.txt", "r");
mmm(&ifile, &i, &min, &max, &mu);
fclose(ifile); /* file must be closed to rescan in other functions */
}
void mmm(FILE *ifile, int *i, int *min, int *max, float *mu) {
printf("running function mean \n");
int sum, num;
*max=0; /* Score range is between 0 and 100 in a class, thus use of fixed initials */
*min=100;
*i=0;
num=0;
sum=0;
while (fscanf(ifile, "%i", &num) !=EOF) {
printf("Variable num is %i. \n", num);
fscanf(ifile, "%d", &num);
if (num>*max) {*max=num;} /* assigns global max and min */
if (num<*min) {*min=num;} /* to be stored to different years in funct main*/
*i=*i+1;
sum= sum + num; /* sums for average calculation */
}
*mu= ((float)sum/(*i));
printf("The min is %i. The max is %i.\n", *min, *max);
printf("i is %i, sum is %i, and mu is %f \n", *i, sum, *mu);
}
#include 문을 맨 위에 넣으려고 했습니까? – dramzy