C语言求子数列最大和

帮我看看我的代码哪出问题了,输出跟答案对不上

img

#include<stdio.h>
int Maxsum(int arr[],int a)
{
    int Thissum,Maxsum,i;
    Thissum=Maxsum = 0;
    for(i = 0;i<a;i++)
    {
        Thissum += arr[i];
        if(Thissum>Maxsum)
            Maxsum = Thissum;
        else if(Thissum<0)
            Thissum = 0;
    }
    return Maxsum;
}
int main()
{
    int a,i,j,n,max,arr[100];
    scanf("%d",&n);
    for(i = 0;i < n;i++)
    {
        scanf("%d",&a);
        for(j = 0;j<a;j++)
            scanf("%d",&arr[i]);
        max = Maxsum(arr,a);
        printf("%d\n",max);
    }
    return 0;
}


24行改为:scanf("%d",&arr[j]);