将数组传递给函数错误?

时间:2017-11-30 05:10:57

标签: c arrays

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

double avrage(int array[5]);

int main(void)
{
    int arr[5] = {10,20,30,40,50};
    puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
    printf("Avg = %f",avrage(arr));
    return EXIT_SUCCESS;
}

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

我编写了一个代码,用于将数组传递给函数以获得数组元素的平均值。 但我得到3个错误我不理解有人可以帮助我解决这些错误 请原谅我的英语不好

错误:

  1. 描述资源路径位置类型 'avrage'的冲突类型 Array_Argument.c
    / Array_Argument / src第58行C / C ++问题

  2. 描述资源路径位置类型 输入结束时的预期声明或声明 Array_Argument.c / Array_Argument / src第67行C / C ++问题

  3. 描述资源路径位置类型 函数'avrage'的参数太少 Array_Argument.c / Array_Argument / src第54行C / C ++问题

1 个答案:

答案 0 :(得分:2)

avg = sum / 5.0;否则整数运算将截断结果。除了那个代码没问题。

最终,您的代码归结为double avrage(int *array)。数组衰减成指向第一个元素的指针。