Error converting an array into an integer
OK it looks like your compiler doesn't follow the c standard.

In c an int is defined as being at least 16 bits. The compiler you are using defines an int as 8 bits. That is why when using an int you wrap around at 255 (or 127 for signed numbers).

Since you only use unsigned values make points an unsigned int16. (and ignore my earlier comments, use %lu in the printf() calls since your compiler thinks that 16 bits is a long)

The pow() function should return a double however it looks like your compiler only supports floats, either way I'm guessing the errors you are seeing are rounding related when converting back from a float/double to an integer.
You calculation was int = int + int*float, the float takes precedence over the int and so you end up with int = float. The compiler then automatically casts the float back to an int. When doing this in c the system will always round down. So if the result was 9.99999999 instead of 10 due to floating point rounding errors you end up getting 9 not 10. 

You could solve this by adding 0.5 to each calculation, it will then round to the nearest integer rather than rounding down. However best option is probably to avoid all the floating point stuff completely. Doing everything with integers will be both faster and more reliable.

Try:

pulses=0;
//Converts the array into an integer, [0] is most significant
for(i=0; i&lt;5; i++) {
  pulses = pulses*10 + count[i];
}