C语言题目 输入整数N,后面有N对整数a和b,每对a和b占一行,每行输出一个a+b的和,顺序与输入对应

详细问题为
Description
计算a+b,0<=a,b<1000。
Input
输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。
Output
每行输出一个a+b的和,顺序与输入对应。
Sample Input
2
1 2
10 20
Sample Output
3
30
我写了一个程序
#include <stdio.h>
#include <stdlib.h>

int main()
{
int N,i;
scanf("%d",&N);
int a[N],b[N];
for (i=0;i<N;i++)
scanf ("%d%d",&a[N],&b[N]);
for (i=0;i<N;i++)
printf ("%d\n",a[N]+b[N]);
return 0;
}
但是为什么输出的不对啊,求大神改正

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int N,i;
    scanf("%d",&N);
 //标准C语言不支持这样定义数组,动态数组要用malloc或new   int a[N],b[N];
 int *a,*b;
 a=(int*)malloc(N*sizeof(int) );
  b=(int*)malloc(N*sizeof(int) );
    for (i=0;i<N;i++)
            scanf ("%d%d",&a[i],&b[i]); //这里应该是i
    for (i=0;i<N;i++)
            printf ("%d\n",a[i]+b[i]);//这里应该是i
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-20
#include <stdio.h>
#include <stdlib.h>
int main(){
int N,i,a[100],b[100];
scanf("%d",&N);
for (i=0;i<N;i++){
scanf("%d%d",&a[i],&b[i]);
}
for(i=0;i<N-1;i++){
printf("%d\n",a[i]+b[i]);
printf("\n");
}
printf("%d",a[N-1]+b[N-1]);
return 0;
}