Here I have a function sum() of type float that takes in a pointer t of type float and an integer size. It returns the sum of all the elements in the array. Then I create two arrays using that function. One that has the BIG value at the first index and one that has it at the last index. When I return the sums of each of those arrays I get different results. 
This is my code:
#include <stdlib.h>
#include <stdio.h>
#define N     1024
#define SMALL 1.0
#define BIG   100000000.0
float sum(float* t, int size) {        // here I define the function sum()
  float s = 0.0;
  for (int i = 0; i < size; i++) {
    s += t[i];
  }
  return s;
}
int main() {
  float tab[N];
  for (int i = 0; i < N; i++) {
    tab[i] = SMALL;
  }
  tab[0] = BIG;
  float sum1 = sum(tab, N);            // initialize sum1 with the big value at index 0
  printf("sum1 = %f\n", sum1);
  tab[0] = SMALL;
  tab[N-1] = BIG;
  float sum2 = sum(tab, N);            // initialize sum2 with the big value at last index
  printf("sum2 = %f\n", sum2);
  return 0;
}
After compiling the code and running it I get the following output:
Sum = 100000000.000000
Sum = 100001024.000000
Why do I get different results even though the arrays have the same elements ( but at different indexes ).
 
     
     
    