看看这个多项式加法怎么出错了呢
不要嫌我写的不好啊程序代码:
#include<stdio.h> #include<stdlib.h> typedef struct { int data[100]; int length; }sqlist; void display(int *p) { int i=0; while(p[i]!=0) printf("[ %d %d ] ",p[i++],p[i++]); printf("\n"); } void init(sqlist *&L) { int i; L=(sqlist*)malloc(sizeof(sqlist)); for(i=0;i<100;i++) L->data[i]=0; L->length=0; } void add(sqlist *&L) { int num,index; while(1) { scanf("%d",&num); scanf("%d",&index); if(index<0) break; else L->data[index]+=num; } while(1) { scanf("%d",&num); scanf("%d",&index); if(index<0) break; else L->data[index]+=num; } } void save(sqlist *L,int *&p) { int i,j; p=(int*) malloc( 202*sizeof(int) ); for(j=0;j<100;j+=2) { for(i=99;i>=0;i--) { if(L->data[i]!=0) { p[j]=L->data[i]; p[j+1]=i; }}} } int main() { int i,n; sqlist *L; scanf("%d",&n); int *parr[100]; for(i=0;i<n;i++) { init(L); add(L); save(L,parr[i]); } for(i=0;i<n;i++) display(parr[i]); free(parr[i]); return 0; }