As part of a homework assignment my program has to have a function which will carry out Simpson's method for integration. Anyway my function is given here:

When used with the values a=-1, b=1 and N=4, the values for funca and funcb give correct answers, however the result of functerm is a massive number (in the order of 10^238 or something) when it should be about 10. Can anyone spot where my mistake is being created?Code:double function1(double a, double b, int N) { double result; double functerm; double funca = sqrt(1+pow(a,4)); double funcb = sqrt(1+pow(b,4)); int count = 1; double x=a+((b-a)/N); printf("%g\n",funca); printf("%g\n",funcb); while (x<b) { if(count%=2 == 0) functerm+=2*(sqrt(1+(x*x*x*x))); else functerm+=4*(sqrt(1+(x*x*x*x))); x+=((b-a)/N); count++; } printf("%g\n",functerm); result=(functerm + funca + funcb)*((b-a)/(3*N)); return result; }

The formula for Simpson's rule was given on a sheet by the way, as neither myself nor my maths student friends seem to remember it as its given there.