多项式相加

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     typedef struct arr Array;
 6     struct arr{
 7         int a;
 8         int i;
 9     };
10     Array a[10]={{9,12},{15,8},{3,2}};
11     Array b[10]={{26,19},{-4,8},{-13,6},{82,0}};
12     Array tmp[10]={0};
13     int ai=0,bi=0,ti=0;
14 
15     while(a[ai].a && b[bi].a){
16         if(a[ai].i>b[bi].i)
17             tmp[ti++] = a[ai++];
18         else if(a[ai].i<b[bi].i)
19             tmp[ti++] = b[bi++];
20         else if(a[ai].i==b[bi].i){
21             tmp[ti].a=a[ai].a+b[bi].a;
22             tmp[ti].i=a[ai].i;
23             ti++,ai++,bi++;
24         }
25     }
26 
27     while(a[ai].a){
28         tmp[ti++] = a[ai++];
29     }
30 
31     while(b[bi].a){
32         tmp[ti++] = b[bi++];
33     }
34 
35     for(ti=0; tmp[ti].a; ++ti)
36     {
37         if(ti&&tmp[ti].a>0)
38             printf("+ ");
39         
40         printf("%d",tmp[ti].a);
41 
42         if(tmp[ti].i)
43             printf("x");
44 
45         if(tmp[ti].i)
46             printf("%d ",tmp[ti].i);
47     }
48     printf("\n");
49 
50     return 0;
51 }

猜你喜欢

转载自www.cnblogs.com/GoldenEllipsis/p/10296011.html
今日推荐