下面这个程序的问题到底出在哪了,求指导。为什么max的值会变成35

#include
#include

int main()
{
int a[10],i,j=0,max=0;
printf("请输入10个自然数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=10;i++)
{
if(a[i]>max)
{
max=a[i];
j=i;
}

}
printf("max=%d,输入次数=%d\n",max,j);
return 0;
}

第二个for循环应该是for(i=0;i<10;i++)把

第二个循环超出数组范围了,长度为n的数组可访问的数组下标是0到n-1

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

int main()
{
int a[10],i,j=0,max=0;
printf("请输入10个自然数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
j=i;
}

}
printf("max=%d,输入次数=%d\n",max,j+1);
return 0;
}