关于如何实现一次输入n行的问题

问题遇到的现象和发生背景

期望一次输入n行,但是输入n换行输入第一行后就会输出

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i;
    int a;
    int sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a);
        if(a%3==1&&a%5==2)
        {
            sum=sum+a;
        }
        printf("%d\n",sum);
    }
    return 0;
}

运行结果及报错内容

img

我想要达到的结果

以此题为例,输入
3
7 13 22 -1
173 19 189 144 88 104 123 78 160 134 -1
108 2 183 153 179 100 71 8 145 37 62 124 55 49 33 159 168 129 151 119 39 154 45 66 134 42 185 30 187 -1
输出
29
0
224

你如果想一行一行的输入
那要用%s来接收啊
你这个写法是接收n个变量的意思
而变量到底是写成一行还是分3行,对于程序来说没区别

这个输出不影响你输入啊
两边是分开的,比如你按行输入123,输入一个就输出一个,结果就是

1
1
2
2
3
3

这么改,供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, i;
    int a;
    int sum = 0;
    scanf("%d", &n);
    while (n--)    //for (i = 1; i <= n; i++)
    {
        sum = 0;
        while (scanf("%d", &a) == 1 && a != -1) {
            if (a % 3 == 1 && a % 5 == 2)
            {
                sum = sum + a;
            }
        }
        printf("%d\n", sum);
    }
    return 0;
}