从键盘上输入n个数(n也从键盘输入),输出其中最大数。本题要求用指针实现。能帮我看看有什么问题么

```c

#include<stdio.h>
int main()
{
int a[100],n,*p,*max;
scanf("%d",&n);
for(p=a;p<a+n;p++)//从键盘输入n个数
scanf("%d",p);
int i;
for(i=0;i<=n;i++)
{
if(a[i]>*max)
*max=a[i];
}
printf("max=%d\n",*max);
return 0;
}

```报出来结果不对

#include<stdio.h>
int main()
{
    int a[100],n,*p,*max,i;
    scanf("%d",&n);
    for(p=a;p<a+n;p++)//从键盘输入n个数
        scanf("%d",p);
    max = &a[0];                     //你的最大值没有初始化导致是个随机值
    for(i=0;i<n;i++)                  //只有n个数下标到不了n   你<=就会溢出
      {
        if(a[i]>*max)
        max=&a[i];
    }
    printf("max=%d\n",*max);
    return 0;
}

修改后测试如下图

img


有帮助的话采纳一下