Advertisement
Bewin

polyAdd

Feb 4th, 2024
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. struct poly {
  4.     int coef;
  5.     int expo;
  6.  
  7. } p1[100], p2[100], p3[100];
  8.  
  9. int read(struct poly[]);
  10.  
  11. int add(int t1, int t2);
  12.  
  13. void display(struct poly[], int t);
  14.  
  15.  
  16. int main() {
  17.  
  18.     int t1, t2, t3;
  19.     t1 = read(p1);
  20.     t2 = read(p2);
  21.     t3 = add(t1, t2);
  22.     printf("first polynomial\n");
  23.     display(p1, t1);
  24.     printf("second poly\n");
  25.     display(p2, t2);
  26.     printf("result\n");
  27.     display(p3, t3);
  28. }
  29.  
  30. int read(struct poly p[]) {
  31.  
  32.     int terms, i;
  33.     printf("enter no elements");
  34.  
  35.     scanf("%d", &terms);
  36.     for (i = 0; i < terms; i++) {
  37.  
  38.         printf("enter coeff");
  39.         scanf("%d", &p[i].coef);
  40.         printf("enter expo");
  41.         scanf("%d", &p[i].expo);
  42.        
  43.     }
  44.  
  45.     return terms;
  46.    
  47. }
  48.  
  49. int add(int t1, int t2) {
  50.    
  51.     int i = 0, k = 0, j = 0;
  52.     while (i < t1 && j < t2) {
  53.         if (p1[i].expo == p2[j].expo) {
  54.             p3[k].expo = p1[i].expo;
  55.             p3[k].coef = p1[i].coef + p2[j].coef;
  56.             i++;
  57.             j++;
  58.             k++;
  59.  
  60.         } else if (p1[i].expo > p2[j].expo) {
  61.             p3[k].expo = p1[i].expo;
  62.             p3[k].coef = p1[i].coef;
  63.             k++;
  64.             i++;
  65.         } else {
  66.             p3[k].expo = p2[j].expo;
  67.             p3[k].coef = p2[j].coef;
  68.             j++;
  69.             k++;
  70.         }
  71.  
  72.     }
  73.     while (i < t1) {
  74.         p3[k].expo = p1[i].expo;
  75.         p3[k].coef = p1[i].coef;
  76.         k++;
  77.         i++;
  78.     }
  79.     while (j < t2) {
  80.         p3[k].expo = p2[j].expo;
  81.         p3[k].coef = p2[j].coef;
  82.         j++;
  83.         k++;
  84.     }
  85.  
  86.     return k;
  87.  
  88. }
  89.  
  90. /*void display(struct poly p[],int t)
  91. {
  92.     int i;
  93.     for(i=0;i<t-1;i++)
  94.     {
  95.         printf("%dx^%d+",p[i].coef,p[i].expo);
  96.     }
  97.     printf("%dx^%d",p[t-1].coef,p[t-1].expo);
  98. }*/
  99. void display(struct poly p[], int t) {
  100.     int i;
  101.     for (i = 0; i < t - 1; i++) {
  102.         printf("%dx", p[i].coef);
  103.         printf("^%d", p[i].expo);
  104.         printf("+");
  105.     }
  106.     printf("%dx", p[t - 1].coef);
  107.     printf("^%d", p[t - 1].expo);
  108.     printf("\n");
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement