我这个代码为什么出错了啊#include <stdio.h>

我这个代码为什么出错了啊

img

#include
int main()
{
    int i , j , m , n , x , y , t ;
    double z , k ;
    int a[1000] , b[1000] ;
    scanf( "%d" , &t ) ;
    a[0] = 1 ;
    a[1] = 1 ;
    for( i = 2 ; i < 1003 ; i ++ )
    {
        m = i - 1 ;
        n = i - 2 ;
        a[i] = a[m] + a[n] ;
    }
    for( x = 1 , y = 2 , k = 0 ; x <= t ; x ++ , y ++ )
    {
        z = a[y] / a[x] ;
        k += z ;
    }
    printf( "%.2f" , k ) ;
    return 0 ;
}

z = a[y] / a[x]这是整数除法呀
改为z = a[y]*1.0 / a[x]
此外,问你前n项和,那你循环次数怎么能写死呢,t都没用上啊

越界啊,10行i<1003,那么i可以等于1002啊,那14行a[i]就越界了啊。应该是i<1000啊
z = a[y] / a[x] 也不对,因为a数组是整型数组,两个元素相除是整除,没有小数部分,改为 z = a[y] * 1.0 / a[x];

z = a[y] / a[x]
这里是整除
应该是
z = a[y] / (double)a[x]

另外,数组越界
int a[1005] , b[1005] ;