我收到以下错误:
1. expected = , ; before { (line 2)
2. expected { at end of input (line 12)
这是我的代码:
#include <stdio.h>
#include "evenSum.h"
int Even_Sum(int array, int i)
{
for(i = 0; i < 10; ++i)
{
if(array[i] % 2 =0)
{
int sum=0;
sum += array[i];
return sum;
}
}
}
我的标题文件包含
行int Even_Sum(int array, int i)
答案 0 :(得分:4)
在您的标头文件中;
之后添加int Even_Sum(int array, int i)
。
没有;
,编译器会看到
int Even_Sum(int array, int i)
int Even_Sum(int array, int i)
{
for(i = 0; i < 10; ++i)
{
... etc ...
当然,这不是有效的c语法。因此,您需要;
。
编辑,您希望处理int array
参数,因为array
用作 的数组不是 int 。
答案 1 :(得分:1)
一旦修复了所有语法问题,您确定要在数组中找到第一个偶数后立即返回吗?也许你的意思是这样的,它迭代整个数组并总结所有偶数。 请注意,您需要一个指向int的指针作为第一个Even_Sum参数。
另请注意,i
参数在您的代码中无用;特别是如果要传递数组中的元素数,则不应将其用作索引变量。我已将其重命名为n
并使循环从0运行到n-1。
#include <stdio.h>
#include "evenSum.h"
int Even_Sum (int *array, int n)
{
int sum = 0;
int i;
for (i = 0; i < n; ++i)
{
if (array[i] % 2 == 0)
{
sum += array[i];
}
}
return sum;
}
答案 2 :(得分:0)
作为此类邮件的一般调试提示,如果您在文件开头出现错误(尤其是“expected ;
”),请检查标题文件是否有拼写错误。当你#include
一个头文件时,它就像编译器在那时将整个文件插入到你的文件中,因此第一行或第二行的错误暗示了头文件的问题(因为这实际上是“前一行”) )。