Skip to content

Instantly share code, notes, and snippets.

@krishnan793
Created December 18, 2014 15:19
Show Gist options
  • Save krishnan793/2a49c27f3dcb5ac404d8 to your computer and use it in GitHub Desktop.
Save krishnan793/2a49c27f3dcb5ac404d8 to your computer and use it in GitHub Desktop.
#include<stdio.h>
#include<stdlib.h>
void polynomial_insert(int *poly,int poly_size);
void polynomial_add(int *poly_1,int *poly_2,int *add,int poly_1_size,int poly_2_size);
void polynomial_display(int *poly,int poly_size);
int main()
{
int p1_size,p2_size,size,i;
printf("Enter the degree of Polynomial P1:");
scanf("%d",&p1_size);
printf("Enter the degree of Polynomial P2:");
scanf("%d",&p2_size);
int *p1=(int *)malloc(p1_size*sizeof(int));
int *p2=(int *)malloc(p2_size*sizeof(int));
size = (p1_size>p2_size?p1_size:p2_size); //Find the polynomial with higher degree.
int *add=(int *)malloc(size*sizeof(int));
/*Polynomial P1 Coefficients Insert*/
printf("\nPolynomial 1\n==========\n\n");
polynomial_insert(p1,p1_size);
/*Polynomial P2 Coefficients Insert*/
printf("\nPolynomial 2\n==========\n\n");
polynomial_insert(p2,p2_size);
polynomial_add(p1,p2,add,p1_size,p2_size);
/*-----------------Displaying Contents----------------------*/
/*Clear Display*/
system("cls");
system("color 2F");
/*Polynomial P1 Display*/
printf("\n\nP1(x)= ");
polynomial_display(p1,p1_size);
/*Polynomial P2 Display*/
printf("\t+\n\nP2(x)= ");
polynomial_display(p2,p2_size);
/*Polynomial P1+P2 Sum*/
printf("\n");
for(i=0;i<(p1_size>p2_size?p1_size:p2_size)*9;i++)
printf("-");
printf("\n\nP3(x)= ");
polynomial_display(add,size);
}
void polynomial_insert(int *poly,int poly_size)
{
int i;
for(i=0;i<poly_size;i++)
{
printf("a(%d):",i);
scanf("%d",poly++);
}
}
void polynomial_add(int *poly_1,int *poly_2,int *add,int poly_1_size,int poly_2_size)
{
int size=0,i;
size=poly_1_size>poly_2_size?poly_1_size:poly_2_size;
for(i=0;i<size;i++)
*(add++)=(i>=poly_1_size?0:*poly_1++)+(i>=poly_2_size?0:*poly_2++);
}
void polynomial_display(int *poly,int poly_size)
{
int i;
for(i=0;i<poly_size;i++)
if(!i)
printf("%d",*poly++);
else
printf(" + %dx^(%d)",*poly++,i);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment