请问为什么会出现这样的情况?(语言-c语言)

求菲波拉契数列的前N(小于40)项;在main函数中定义数组,用数组做函数参数。

img

代码:

#include <QCoreApplication>
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;


void Fibonacci(int n,int num[40])
{
    int i;
    num[0]=1;
    num[1]=1;
    for(i=2;i<n;++i)
    {
        num[i]=num[i-2]+num[i-1];
    }
}

int main()
{
    int n,num[40],i;
    scanf("%d",&n);
    Fibonacci(n,num);
    for(int i=0;i<n;i++)
    {
        if(i%4==0)
            printf("\n");
        printf("%4d",num[i]);
    }
    printf("\n");

    return 0;
}

img

出现了什么情况呢

检查检查数组是否越界,或者没有初始化,或者赋值不正确
我得预感是这部分原因导致出错的
哈哈哈

(找bug是一件很“快乐”的事)