在显示数组的时候最后一个元素总是显示-858993460

图片说明

这是代码

#include<stdio.h>
#include<stdlib.h>
#define N 11
int fun1(int w[],int b[],int n);
int main()
{
    int a[N], b[N] = { 0 }, n=0;
    for (int i = 0; i < N; ++i)
    {
       a[i] = rand() % 100;
    }
    printf("原数组为\n");
    for (int i = 0; i <= N; i++)
    {
        printf("%d ",*(a + i));  
    }
    printf("\n");
    n=fun1(a, b, n);
    printf("操作后数组为\n");
    for (int j = 0; j < n; j++)
    {
        printf("%d ", b[j]);
    }
}
int fun1(int a[], int b[], int n)
{

    for (int i = 0; i <= N; i++)
    {
        if (*(a + i) % 2 == 0)
        {
            continue;
        }
        else
        {
            b[n] = a[i];
            n++;
        }

    }
    return n;
}

望解答!

for (int i = 0; i <= N; i++)
这里<=N导致数组越界了。应该是<N