C语言初学者问题,结果只有0

为什么我的这个代码只能显示0

######```c

include

int main()
{
int a[3];
int max=1;
int i=0;
int x=0;
for( i=0;i<=3;++i)
{
scanf("%d", &a[i]);
}
for( x=0;x<=3;++x);
{max=a[x];
}
printf("%d",max);
}

```

img

我的解答思路和尝试过的方法
哪位人才可以帮忙解答一下

数组已经越界了,数组的下标是从零开始的,所以你的a3访问的应该是一个随机值

return 0返回 你写完没有进行返回结束

越界了,你数组存的只能存三个数,下标0,1,2。
你读取下标为三的值是个随机值


#include<stdio.h>
int main()
{
int a[3];//只有三个空间,0,1,2 
int max=1;
int i=0;
int x=0;
//for( i=0;i<=3;++i)而这里取了"="即a[3],已经超过了数组定义的长度。 
for( i=0;i<3;++i)
{
scanf("%d", &a[i]);
}
//for( x=0;x<=3;++x);同理 
for( x=0;x<3;++x)
{max=a[x];
}
printf("%d",max);
}