C语言求最大子数列和

帮我看看我的代码有什么问题,代码有输入没输出
题目:
输入一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。输出其中最大的和
输入
输入有n+1行,第一行有一个n表示有n组测试数据,接下来n行,每行第一个数表示数组长度m,接下来是m个数组元素(长度不超过100,数组元素必包含正数和负数)。
输出
输出有n行,对应每组输入数组的最大子数组之和。

#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[10000];
    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],a);
        printf("%d\n",max);
    }
    return 0;
}

25行 max = Maxsum(arr[a],a);
改为:max = Maxsum(arr,a);