C语言 函数数组 基础题

题目:输入10个数,要求输出其中值最大的元素和该数是第几个数。
我的做法:

int max(int x,int y)
{
    int z;
    return(z=x>y?x:y);
}
#include
int main()
{
    int max(int x,int y);
    int a[10],i,j,b,c;
    for(i=0;i<10;i++)
    {
        scanf("%d",a[i]);
        
    }
    for(j=a[0],i=1;i<10;i++)
        if(max(a[i],j)>j)
        {
            j=a[i];
            c=i;
        }
    printf("the max is %d.it is the %dth number.\n",j,c+1);
    return 0;
}

这个代码可以运行,但是不能输出结果

img

能不能帮忙找找错,谢谢

scanf函数错了,少了&号

  scanf("%d",&a[i]);
```c


```

改动处见注释,供参考:

#include <stdio.h>
int max(int x, int y)
{
    int z;
    return(z = x > y ? x : y);
}
int main()
{
    int max(int x, int y);
    int a[10], i, j, b, c;
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]);  //scanf("%d", a[i]); 修改
    }
    for (j = a[0], c = 0, i = 1; i < 10; i++) // for(j=a[0],i=1;i<10;i++) 修改
        if (max(a[i], j) > j)
        {
            j = a[i];
            c = i;
        }
    printf("the max is %d.it is the %dth number.\n", j, c + 1);
    return 0;
}