두 개의 파일로 구성된 프로젝트가 있지만 평균 변수를 인쇄하는 주 프로그램을 가져올 수 없습니다. 또한 다른 모든 기능을 인쇄하지 않습니다.평균 인쇄되지 않음
Main File:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float average(void);
float std_dev(float);
float output(float);
float array[10] = {4.8, 12.98, 82.1, 5.98, 19.75, 24.9, 75.7, 3.45, 10.0, 28.11};
extern float avg;
int main()
{
float s = 0.0;
printf("The average value of the array is %.2f \n", avg);
s = std_dev(avg);
printf("The standard deviation of the array is %.2f \n", s);
return 0;
}
static void output(float var)
{
printf("The value of the variable is %.2f \n", var);
}
두 번째 파일 :
이#include <math.h>
extern float array[];
float avg = 26.78;
static float average()
{
int n;
float sum = 0.0, mean=0.0;
for(n=0; n<10; n++)
sum = sum + array[n];
mean= sum/10;
output(mean);
return mean;
}
float std_dev()
{
int n;
float cumm_diff = 0.0;
for(n=0; n<10; n++)
cumm_diff += (avg -array[n]) * (avg -array[n]);
return sqrt(cumm_diff/10);
}
'double' 대신에'float'을 쓰려고하는데,'sqrtf()'대신'sqrt()'를 사용하는 것이 궁금합니다. –
가능한 경우 매개 변수없는 함수를 사용하지 않아야합니다. 배열에 길이를 더한 포인터와 시작 포인터 (예 :'float std_dev (size_t num_data, float data [])')를 전달하면 코드가 더 일반적 (재사용 가능)이됩니다. –
프로그램을 컴파일 한 후 'output()'의 선언과 정의가 다르다),'avg' 변수가 잘 출력됩니다. – babon