[ create a new paste ] login | about

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

C, pasted on May 23:
#include <stdio.h>
#define N 3

int main() {
  static double a[N][N + 1] = {
    { 3.0, 1.0, 1.0, 10.0 },
    { 1.0, 5.0, 2.0, 21.0 },
    { 1.0, 2.0, 5.0, 30.0 }
  };
  int k, i, j;

  double c;
  for (k = 0; k < N; k++) {
    c = a[k][k];
    for (i = 0; i < N + 1; i++)
      a[k][i] /= c;
    for (i = k + 1; i < N; i++) {
      c = a[i][k];
      for (j = k; j < N + 1; j++)
        a[i][j] /= c;
    }
    for (i = k + 1; i < N; i++)
      for (j = k; j < N + 1; j++)
        a[i][j] -= a[k][j];
  }
  for (k = N - 1; k >= 0; --k) {
    c = a[k][N];
    for (i = k - 1; i >= 0; --i) {
      a[i][N] -= c * a[i][k];
/*      a[i][k] = 0.0; */
    }
  }
  printf("x = %.4f\n", a[0][N]);
  printf("y = %.4f\n", a[1][N]);
  printf("z = %.4f\n", a[2][N]);
  return 0;
}
/* end */


Output:
1
2
3
x = 1.0000
y = 2.0000
z = 5.0000


Create a new paste based on this one


Comments: