I have a homework to implement an FIR filter in C and I wonder whether you think I understood the assignment correctly. The program I wrote that I think solves the problem is:
#include <stdio.h>
float FIRfloats[5];
void floatFIR(float newsample)
{
  int i;
  float sum=0;
  FIRfloats[0]=newsample*0.0299;
  FIRfloats[1]=FIRfloats[2]*0.4701;
  FIRfloats[2]=FIRfloats[3]*0.4701;
  FIRfloats[3]=FIRfloats[4]*0.0299;
  /* sum */
   for(i=0;i<5;i++)
  {
    sum=sum+FIRfloats[i];
  }
  printf("Sum: %f\n", sum);
}
int main ()
{
  float n=0.0f; 
  while (scanf("%f", &n) > 0)
  {
  floatFIR(n);
  }
  return 0;
}
And the specification is
Before a new sample xk arrives the old samples are shifted to the right and then each sample is scaled with a coefficient before the result yk, the total sum of all scaled samples, is calculated
Coefficients should be c0=0.0299, c1=0.4701, c2=0.4701, c3=0.0299.
Do you think that I solved the assignment correctly? I think it seemed too easy and therefore I wonder.