C语言问题,代码没报错但运行结果不对,题干信息如下。

一共有n个数字,每m个数字分成一组,对每组数字求和,输出最小和


int main()
{
    int m,n,p[3000],i=1,j=1,q,s[3000],t,z;
    int min;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&p[i]);
    }
    t=n%m;
    //所有数字可分为的组数
    if(t=0)
    {
        q=n/m;
    }
    else
    {
        q=n/m+1;
    }
    z=i-(j-1)*m;
    for(j=1;j<=q;j++)
    {
        for( ;z<=m&&i<=n;i++)
        {
            s[j]=s[j]+p[i];
        }
        i=j*m+1;
    }
    min=s[1];
    for(j=2;j<=q;j++)
    {
        if(s[j]<min)
        {
            min=s[j];
        }
    }
    printf("%d",min);
    return 0;
}

if(t=0)修改为if(t==0)

if(t=0)改为 if(t==0)
s数组没有初始化为0,改为
int m,n,p[3000],i=1,j=1,q,s[3000] = {0},t,z;