求助 acm报错 改不来了 求大佬帮忙

改了好多次了 要么PE 要么就TLE
我的代码:
#include
int main(void)
{
int M,N,i;
scanf("%d\n",&M);

while((M--)!=0)
{
while(scanf("%d ",&N),N)
{
int sum =0;
while((N--)!=0)
{
scanf("%d ",&i);
sum +=i;
}if(M !=1){
printf("%d\n\n",sum);
}
else
{ printf("%d\n",sum);
break;
}

}
}

return 0;
}

题目:
Problem Description
Your task is to calculate the sum of some integers.

Input
Input contains an integer N in the first line, and then N lines follow. Each line starts with a integer M, and then M integers follow in the same line.

Output
For each group of input integers you should output their sum in one line, and you must note that there is a blank line between outputs.

Sample Input
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3

Sample Output
10

15

6


#include <stdio.h>
#include<iostream>
#include <malloc.h>
#include <string.h>

using namespace std;

int main(void)
{
    int M,N,item,sum;
    scanf("%d",&N);

    int *p_sum = (int *)malloc(N*sizeof(int));
    memset(p_sum,0x0,N*sizeof(int));
    for(int i=0;i<N;i++)
    {
        sum = 0;
        scanf("%d",&M);
        while((M--)!=0)
        {
            scanf("%d",&item);
            sum += item;
        }
        *(p_sum+i) = sum;
    }

    printf("######Output######\n");
    for(int j=0;j<N;j++)
    {
        printf("%d\n",p_sum[j]);
    }

    return 0;
}