[ create a new paste ] login | about

Link: http://codepad.org/EJsRpvsN    [ raw code | output | fork ]

C, pasted on May 15:
#include <stdio.h>
struct data {
  double x;
  double y;
};

static struct data data[] = {
  {1.1, 1.0},
  {2.0, 2.1},
  {3.2, 3.0},
  {4.0, 4.1},
  {5.1, 5.0},
  {6.0, 6.1},
  {7.1, 7.0},
  {8.0, 8.1},
  {-1, -1} /* sentinel */
};

int main() {
  int i, n;
  double a, b;
  double x, y;
  double sum_xy = 0.0, sum_x = 0.0, sum_y = 0.0, sum_x2 = 0.0;
  for (i = 0; data[i].x > 0.0; i++) {
    x = data[i].x;
    y = data[i].y;
    sum_xy += x * y;
    sum_x += x;
    sum_y += y;
    sum_x2 += x * x;
  }   
  n = i;
  a = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x * sum_x);
  b = (sum_x2 * sum_y - sum_xy * sum_x) / (n * sum_x2 - sum_x * sum_x);
  
  printf("a = %f\n", a);
  printf("b = %f\n", b); 

  return 0;
}


Output:
1
2
a = 1.011763
b = -0.066167


Create a new paste based on this one


Comments: