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:

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;
}
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?

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.