我觉得代码没毛病 为什么报错?

描述:
输入两个数A,BA,B,输出A+BA+B的值。

输入描述
多组数据:每组由两个整数(AA和BB)构成,AA和BB之间用空格隔开,每组输入单独占一行。

当输入为"0 0"时,输入结束。"0 0"这组数据不处理。

输出描述
对于每一组测试用例,输出齐对应的和,每组数据一行。

样例输入
1 2
3 4
10 20
0 0
样例输出
3
7
30
代码:
#include<stdio.h>
int main(){
int a,b,i;
int t[10]={0};
for(i=0;i<100;i++){
scanf("%d %d",&a,&b);
if(a==0 && b==0)break;

t[i]=a+b;

};
for(i=0;t[i]!=0;i++)
printf("%d\n",t[i]);
return 0;
}

(1)t中最多10个元素,for循环是100,把t改大一些
(2)for循环中,用t[i]!=0判断不合适,当a = -1,b=1的时候,结果也是0,这时候输出结果就不全
改成下面的代码。

#include<stdio.h>
int main(){
    int a,b,i,j;
    int t[100]={0}; //这里改成100
    for(i=0;i<100;i++){
        scanf("%d %d",&a,&b);
        if(a==0 && b==0)break;

        t[i]=a+b;
    };
    for(j=0;j<i;j++)
        printf("%d\n",t[j]);
    return 0;
}