2013-11-04 39 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