在传递的1-d数组C中使用if语句,类型的大小' int(int *)'函数数组中未知或为零(int *)

时间:2018-02-15 10:37:09

标签: c

#define SIZE 5

int array(int[]);

int main()
{
int my_array[SIZE];

int i,highest;

for(i=0;i<SIZE;i++)
{
    printf("enter element %d of the array",i);
    scanf("%d",&my_array[i]);
}

highest=array(my_array);

}//end main

好像我正确地传递了数组但是当我到达我的if语句时,我得到多个错误声明 类型的大小&#39; int(int *)&#39;函数数组中未知或为零(int *)

int array(int my_array[])
{
int i,largest;

largest=my_array[0];

for(i=0;i<SIZE;i++)
{
    if(array[i]>largest)
    {
        largest=array[i];
    }//end if
}//end for

return largest;
}//end array

3 个答案:

答案 0 :(得分:1)

看起来你刚刚写了一个错字。 替换

if(array[i]>largest)
{
    largest=array[i];
}//end if

通过

if(my_array[i]>largest)
    {
        largest=my_array[i];
    }//end if

它应该有效!

答案 1 :(得分:0)

你有一些命名问题,就是这样。在函数中将数组名称array更改为my_array,因为函数和数组的名称相同。:

#include <stdio.h>

#define SIZE 5

int array_func(int[]);

int main()
{
    int my_array[SIZE];

    int i,highest;

    for(i=0; i<SIZE; i++) {
        printf("enter element %d of the array: ",i);
        scanf("%d",&my_array[i]);
    }

    highest=array_func(my_array);
    printf("%d\n", highest);

    return 0;
}//end main

int array_func(int my_array[])
{
    int i,largest;

    largest=my_array[0];

    for(i=0; i<SIZE; i++) {
        if(my_array[i]>largest) {
            largest=my_array[i];
        }//end if
    }//end for

    return largest;
}//end array

答案 2 :(得分:0)

在你的函数中你写&#34; array&#34;而不是&#34; my_array&#34;这是您设置的参数,如定义函数时在括号中所示。您可以为参数指定任何名称,但不得在函数内使用其他名称。