运行结果错误,大神帮帮忙,两个多项式相加(没有错误)
#include<stdio.h>typedef struct{
int e[10];
int c[10];
}STRarray;
int main(){
int i,j,k,t;
int add(STRarray a1,int j,STRarray a2,int k,STRarray a3);
STRarray a1,a2;
STRarray a3;
printf("输入第一个多项式的项数为(按回车结束输入k值)");
scanf("%d",&j);
printf("输入第一个多项式指数为(按回车结束输入k值)");
for(i=0;i<j;i++)
scanf("%d",&a1.e[i]);
printf("输入第一个多项式系数为(按回车结束输入k值,系数与指数一一对应)");
for(i=0;i<j;i++)
scanf("%d",&a1.c[i]);
printf("输入第二个多项式的项数为(按回车结束输入k值)");
scanf("%d",&k);
printf("输入第二个多项式指数为(按回车结束输入k值)");
for(i=0;i<k;i++)
scanf("%d",&a2.e[i]);
printf("输入第二个多项式系数为(按回车结束输入k值,系数与指数一一对应)");
for(i=0;i<j;i++)
scanf("%d",&a2.c[i]);
t=add(a1,j,a2,k,a3);
printf("%d\n",t);
for(i=0;i<t;i++)
printf("%d %d",a3.c[i],a3.e[i]);
}
int add(STRarray a1,int j,STRarray a2,int k,STRarray a3){
int m,n=0,t=0,l=0;
for(m=0;m<j+k;m++){
if(a1.e[n]==a2.e[t]&&n!=j&&t!=k){
a3.c[m]=a1.c[n]+a2.c[t];
a3.e[m]=a1.e[n];
n++;
t++;
m++;
l++;
}
else if (a1.e[n]>a2.e[t]&&(n!=j&&t!=k)){
a3.c[m]=a1.c[n];
a3.e[m]=a1.e[n];
n++;
l++;
}
else if (a1.e[n]<a2.e[t]&&(n!=j&&t!=k)){
a3.c[m]=a2.c[t];
a3.e[m]=a2.e[t];
t++;
l++;
}
if(n==j&&t!=k){
a3.c[m]=a2.c[t];
a3.e[m]=a2.e[t];
t++;
m++;
l++;
}
else if(t==k&&n!=j){
a3.c[m]=a1.c[n];
a3.e[m]=a1.e[n];
n++;
m++;
l++;
}
}
return l;
}
[此贴子已经被作者于2019-9-22 21:07编辑过]