加法两次算出来不一样的值

这个目的是:输入数据有多组,每组为一行,包括两个32位整数。对每组输入,在单独的行中输出结果。我写出来后输入1 2 和-1 1进行测试,但是第二组-1+1=2,我把-1 1作为第一组他就能算出来0,请问这是怎么回事。

#include
int main()
{
    double a,b,c[100];
    int n=0;
    while(scanf("%lf %lf",&a,&b)!=EOF)
    {
        c[n]=a+b;
        n++;
        if(getchar()=='\n'&&getchar()=='\n')
        break; 
    }
    for(int i=0;iprintf("%.0lf\n",c[i]);
    return 0;
}

包括两个32位整数
都说了是整数,为啥要定义double a,b啊?
if(getchar()=='\n'&&getchar()=='\n')
break;
---这是什么鬼?删掉它,莫名其妙的代码啊

程序没问题啊,我运行的结果是对的

img