Perhaps you need to assign a value to ea instead of trying to use an uninitialized variable?
Code:
#include<stdio.h>
#include<math.h>
#include<iso646.h>
int factorial(int n);
void Maclurin(float x, float es, int maxIter);
int main(void)
{
Maclurin(1, 0.05 , 100);
return 0;
}
//Maclurin series approximation
void Maclurin(float x, float es, int maxIter)
{
//x - e^x
//es - Scarborough error value
//maxIter - maximim iterations
int iter = 1;
float oldVal = 1.0;
float val;
float ea;
while( iter < maxIter or ea > es )
{
val = oldVal + ( (pow(x, iter) )/factorial(iter) );
//error calculation
ea = fabs( ( (val - oldVal) / val) ) * 100;
oldVal = val;
iter++;
printf("%d %.e %f\n", iter, ea, val);
}
}
//calculate factorial
int factorial(int n)
{
int start;
int val = 1;
for( start = 1; start <= n; start++ )
val = val * start;
return val;
}