52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
|
/*
|
||
|
* C program to evaluate a given polynomial by reading its coefficients
|
||
|
* in an array.
|
||
|
* P(x) = AnXn + An-1Xn-1 + An-2Xn-2+... +A1X + A0
|
||
|
*
|
||
|
* The polynomial can be written as:
|
||
|
* P(x) = A0 + X(A1 + X(A2 + X(A3 + X(Q4 + X(...X(An-1 + XAn))))
|
||
|
* and evaluated starting from the inner loop
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#define MAXSIZE 10
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
int array[MAXSIZE];
|
||
|
int i, num, power;
|
||
|
float x, polySum;
|
||
|
printf("Enter the order of the polynomial \n");
|
||
|
scanf("%d", &num);
|
||
|
printf("Enter the value of x \n");
|
||
|
scanf("%f", &x);
|
||
|
/* Read the coefficients into an array */
|
||
|
printf("Enter %d coefficients \n", num + 1);
|
||
|
for (i = 0; i <= num; i++)
|
||
|
{
|
||
|
scanf("%d", &array[i]);
|
||
|
}
|
||
|
polySum = array[0];
|
||
|
for (i = 1; i <= num; i++)
|
||
|
{
|
||
|
polySum = polySum * x + array[i];
|
||
|
}
|
||
|
power = num;
|
||
|
printf("Given polynomial is: \n");
|
||
|
for (i = 0; i <= num; i++)
|
||
|
{
|
||
|
if (power < 0)
|
||
|
{
|
||
|
break;
|
||
|
}
|
||
|
/* printing proper polynomial function */
|
||
|
if (array[i] > 0)
|
||
|
printf(" + ");
|
||
|
else if (array[i] < 0)
|
||
|
printf(" - ");
|
||
|
else
|
||
|
printf(" ");
|
||
|
printf("%dx^%d ", abs(array[i]), power--);
|
||
|
}
|
||
|
printf("\n Sum of the polynomial = %6.2f \n", polySum);
|
||
|
}
|