C语言 帮 不断地输入一组多项式资料,输出到目前为止所输入多项式资料的总和

不断地输入一组多项式资料(指数最高不超过5000),直到此组资料符合离开条件时则程式结束。每次输入的一组资料内容如下所示:
N c1 e1 c2 e2 … cN eN
N代表接下来输入多项式的项数
c1 c2 … cN 表示各个项式中的系数
e1 e2 … eN 则表示各个项式中的指数

在此注意的是当N<=0时,则代表此资料符合离开程式条件
当一组资料被输入且不符合离开条件时,请输出到目前为止所输入多项式资料的总和。
多项式资料请以降幂方式排序输出。

输入资料:
3 2 2 3 1 1 0
3 1 1000 -3 1 2 0
1 -3 0
-1

代表的多项式为:
2 x^2 + 3 x + 1
x^1000 - 3 x + 2
-3

最后输出结果:
2 2 3 1 1 0
1 1000 2 2 3 0
1 1000 2 2


#include <stdio.h>
int d[5001];
int N;
int c,e,i,f;
int main() {
    while (1) {
        scanf("%d",&N);
        if (N<=0) break;
        for (i=0;i<N;i++) {
            scanf("%d%d",&c,&e);
            d[e]+=c;
        }
        f=1;
        for (i=5000;i>=0;i--) {
            if (d[i]!=0) {
                if (f) {printf( "%d %d",d[i],i);f=0;}
                else    printf(" %d %d",d[i],i);
            }
        }
        printf("\n");
    }
    return 0;
}