PTA 7-2 一元多项式的加法运算 利用数组解决问题不能用链表

img

img

img

6 2
5 3
3 12
1 6
0 20
-1 -1
6 2
5 3
2 12
1 6
0 20
-1 -1

6 1
1 1
-1 -1
5 -1
0 -1
-1 -1

1 1
-1 -1
1 -1
-1 -1

0

#include <stdio.h>
int main(){
    int a[101] = {0};  
    int b[101] = {0};
    int c[101]={0};
    int x,y,max;
    max = 0;  
    scanf("%d %d",&x,&y); 
    max = x;  
    a[x]+=y;
    do{
        scanf("%d %d",&x,&y);  
        a[x]+=y;        
    }while(x!=-1);     
    do{
        scanf("%d %d",&x,&y);
        b[x]+=y;
        if(x>max)
            max=x;    
    }while(x !=-1);

    int m=1;    //判断系数是否为第一个幂 
    int n=0;   //判断是否输出为0 
    for(;max>=0;max--){ 
        if(a[max]+b[max]>0){
            if(m!=1)
                printf("+");
            if(a[max]+b[max]!=1)
                printf("%d",a[max]+b[max]);
            if(a[max]+b[max]==1)
                printf("");
            if(max > 0)
                printf("x");
            if(max > 1)
                printf("%d",max);
            m++;  //让输出+号 
            n++;  //用来统计跳出循环后做是否和为0的判断
            } 
        else if(a[max]+b[max]<0){  
            if(a[max]+b[max]!=-1)
                printf("%d",a[max]+b[max]);
            else if(a[max]+b[max]==-1 &&max==0) 
                printf("-1");
            else
                printf("-");
            if(max > 0)
                printf("x");
            if(max > 1)
                printf("%d",max);
            m++;
            n++;
            }
        }                
        if(n==0)
            printf("0");
}

img


两个任务点一直无法通过