2013-11-04 38 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語言文件:

#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; 
} 

這裏是驅動程序:

#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; 
} 

非常感謝您的幫助!

+1

錯誤發生在調用者。發佈你調用這些函數的代碼。 – 2013-11-04 02:38:59

+0

嗯,對不起,我在 – user28374

回答

1

你的參數需要傳遞一個數組,但你只整數關口:

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

您提供全方位的電話做到這一點。只需刪除[5]

+0

謝謝,我已經做了這個改變,大部分錯誤都沒有了,剩下的幾個我會加到原帖 – user28374

+0

@ user28374刪除5和括號。 – 2013-11-04 03:14:58

+0

啊,好的,修復它。非常感謝您指出這些錯誤並幫助我! – user28374

3

你的函數在你的C文件中定義在def行末尾有分號。

例如爲:

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

補充說,謝謝,這個固定好幾個問題 – user28374