Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  a.c
Language: C/C++
Code:
//C Program to evaluate a polynomial
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
struct node
{
int px, py, pz, cf;
struct node *link;
};
typedef struct node* NODE;
NODE getnode()
{
struct node* x;
x=(NODE)malloc(sizeof(struct node));
if(x==NULL)
{
printf("Out of memory");
exit(0);
}
return x;
}

//To insert a term at the rear end of the list:
NODE insert_rear(int cf, int px, int py, int pz,struct node* head)
{
printf("heloo");
NODE cur, temp;
temp=getnode();
temp->cf=cf;
temp->px=px;
temp->py=py;
temp->pz=pz;
cur=head->link;
while(cur -> link != NULL)
{NODE getnode()
{
struct node* x;
x=(NODE)malloc(sizeof(struct node));
if(x==NULL)
{
printf("Out of memory");
exit(0);
}
return x;
}
cur = cur ->link;
}
cur->link=temp;
temp-> link = NULL;
return
 head;
}

//To read a polynomial
NODE read_poly(struct node* head)
{
int i, n, cf=0, x=0, y=0, z=0;
printf("%d %d %d %d",cf,x,y,z);
printf("“Enter the number of terms in the polynomial“");
scanf("%d", &n);
for (i=1;i<=n;i++)
{
printf("Enter the term: %d", i);
printf("\nEnter cf, px, py, pz");
scanf("%d %d %d %d",&cf,&x,&y,&z);

printf("********");
head=insert_rear(cf, x, y, z, head);
}
}
//To display the polynomial
void display(NODE head)
{
struct node* temp;
if(head->link==NULL)
{
printf("“Polynomial does not exists”");
return;
}
temp=head->link;
while(temp!=NULL)
{
if(temp->cf<0)
printf("%d", temp->cf);
else
 printf("+%d",temp->cf);
if(temp->px !=0)
 printf("x^%d", temp->px);
if(temp->py !=0)
 printf("y^%d", temp->py);
if(temp->pz !=0)
 printf("z^%d", temp->pz);
 temp=temp->link;
 }
printf("\n");
}

//To evaluate a polynomial
float evaluate(NODE head)
{
NODE p;
float sum=0;
int x, y, z;
if(head->link==NULL)
printf("“Enter the values of x, y and z”");
scanf("%d%d%d",&x, &y, &z);
p=head->link;
while(p!=NULL)
{
//sum=sum+p->cf*pow(x,p->px)*pow(y,p->py)*pow(z,p->pz);
sum=sum+p->cf*(x^p->px)*(y^p->py)*(z^p->pz);
 p=p->link;
 }
return sum;        
}
void main()
{
struct node* head;
float res;
head=getnode();
head->link=NULL;
printf("Enter the polynomial\n");
head=read_poly(head);
res=evaluate(head);
printf("The given polynomial is:");
display(head);
printf("The result of polynomial is:%f", res);
}



Comments: