多项式的求和与输出,关注于数组下标越界等条件。
#include <stdio.h> #include <stdlib.h> #define max 1005 int main() { int num1,num2,i,sum=0; float a[max],b[max]; int j,loca=0; for(i=0;i<max;i++) { a[i]=0;b[i]=0; } scanf("%d",&num1); for(j=0;j<num1;j++) { scanf("%d",&loca); scanf("%f",&a[loca]); } scanf("%d",&num2); loca=0; for(j=0;j<num2;j++) { scanf("%d",&loca); scanf("%f",&b[loca]); } for(i=0;i<max;i++) { a[i]=a[i]+b[i]; if(a[i]!=0) { sum++; } } printf("%d",sum); for(i=max-1;i>=0;i--) { if(a[i]!=0) { printf(" %d %0.1f",i,a[i]); } } return 0; }