我试图使用数组创建一个函数并获得更大的价值,但是我却失败了并获得这些消息,有人可以帮助我吗?


  \ Untitled4.c在“ main”函数中:
  
  25 27 \ Untitled4.c [警告]传递'quatroMaior'的参数1使
  来自整数的指针,无强制转换
  
  3 5 \ Untitled4.c [注]预期为'int *',但参数的类型为'int'


#include <stdio.h>

int greater(int array[]) {
    int i, greater;

    for (i = 0; i < 4; i++) {
        if(array[i] > greater) {
            greater = array[i];
        }
    }

    return greater;
}

int main(void) {

    int j, v[4];

    printf("Type four values\n");

    for (j = 0; j < 4; j++) {
        scanf("%d", &v[j]);
    }

    printf("%d", greater(v[4]));

    system("pause");
    return 0;
}

最佳答案

正如约瑟夫在评论中所说,您传递的是整数,而不是数组。您必须写greater(v)而不是greater(v[4])

接下来需要做的是将greater变量初始化为greater = 0

#include <stdio.h>

int greater(int array[])
{
    int i, greater = 0;

    for (i = 0; i < 4; i++)
    {
        if (array[i] > greater)
        {
            greater = array[i];
        }
    }

    return greater;
}

int main (void)
{
    int j, v[4];

    printf("Type four values\n");
    for (j = 0; j < 4; j++)
    {
        scanf("%d", &v[j]);
    }

    printf("%d\n", greater(v));

    return 0;
}

10-08 13:42