2013-11-04 5 views
-1

내가 몇 가지 기능에 대한 내 헤더 파일과 관련된 다음과 같은 오류가 받고 있어요 나는이를 해결하는 방법을 잘 모르겠습니다 :C - 헤더 파일의 오류

: 여기
prog8.c: In function 'main': 
prog8.c:17: error: expected expression before ']' token 
prog8.c:20: warning: ISO C90 forbids mixed declarations and code 
prog8.c:21: error: expected expression before ']' token 
prog8.c:25: warning: ISO C90 forbids mixed declarations and code 
prog8.c:26: error: expected expression before ']' token 
prog8.c:29: warning: ISO C90 forbids mixed declarations and code 
prog8.c:30: error: expected expression before ']' token 

헤더 파일 코드
#ifndef ARRAYFUNCTIONS_H_INCLUDED 
#define ARRAYFUNCTIONS_H_INCLUDED 

int arraySmallest(int [], int); 

int arrayLargest(int [], int); 

int arraySum(int [], int); 

int arrayAverage(int [], int); 

#endif 

C 파일 :

012 : 여기

#include <stdlib.h> 
#include <stdio.h> 
#include "ArrayFunctions.h" 

/* Smallest */ 

int arraySmallest(int array[], int size) 
{ 
int i, min = array[0]; 
for (i = 0; i < size; i++) 
{ 
    if (array[i] < min) 
    { 
     min = array[i]; 
    } 
} 
return min; 
} 

/* Largest */ 

int arrayLargest(int array[], int size) 
{ 
int i, max = array[0]; 
for (i = 0; i < size; i++) 
{ 
    if (array[i] > max) 
    { 
     max = array[i]; 
    } 
} 
return max; 
} 

/* Sum */ 

int arraySum(int array[], int size) 
{ 
int i, sum = array[0]; 
for (i = 0; i < size; i++) 
{ 
    sum += array[i]; 
} 
return sum; 
} 

/* Sum */ 

int arrayAverage(int array[], int size) 
{ 
int i, avg = array[0], sum = array[0]; 
for (i = 0; i < size; i++) 
{ 
    sum += array[i]; 
} 
avg = sum/size 
return avg; 
} 

는 드라이버 3,516,

#include <stdio.h> 
#include "ArrayFunctions.h" 

int main() 
{ 

/* smallest */ 
int array[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arraySmallest(array[], 5))); 

/* largest */ 
int array2[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arrayLargest(array2[], 5))); 


/* sum */ 
int array3[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arraySum(array3[], 5))); 

/* average */ 
int array4[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arrayAverage(array4[], 5))); 

return 0; 
} 

감사합니다 사전에 어떤 도움을 너무 많이! 당신의 C 파일에

+1

오류는 발신자입니다. 이 함수를 호출하는 코드를 게시하십시오. –

+0

아, 미안 해요, 난에. – user28374

답변

1

귀하의 매개 변수는 배열을 전달해야하지만 당신은 단지 정수를 전달합니다

int array[5] = {2, 8, 3, 4, 5}; 
printf("%d/n", (arraySmallest(array[5], 5))); 
// ---------------------------------^ 

당신은 모든 호출이 작업을 수행. 간단히 [5]를 제거합니다.

+0

몇 가지 문제를 해결하는 것이 추가, 나는이 변경 한 대부분의 오류가 사라 졌어요, 내가 원래 게시물에 추가 할 것입니다 남아있는 몇 안되는는 – user28374

+0

@ user28374를 제거 5와 괄호. –

+0

그걸 수정 해 준 아. 이 오류를 지적하고 도와 주셔서 정말 고마워요! – user28374

3

귀하의 기능 인증 된 정의는 데프 줄의 끝에 세미콜론이있다.

예컨대 :

8: int arrayLargest(int array[], int size); 
+0

감사,이 감사 – user28374