===========================================
	C code
===========================================
#include "stdafx.h"
#include <stdio.h>
#include <math.h>

#define n 3
#define max 100
#define eps 1.0e-6

int _tmain(int argc, _TCHAR* argv[])
{
	int i,j,k;
	double a[n][n]={4, 2, 0,
			2,10, 4,
			0, 4, 5};

	double b [n] = {2,
			6,
			5};

	double x[n]={0.0,0.0,0.0}; // initial value
	double xx[n];
	double err;
	double ax[n];
	double berr[n];
	double bb; 

	for(k=0;k<max;k++) {
		err=0.0;
		for(i=0;i<n;i++) {
			xx[i]=b[i];
			for(j=0;j<n;j++) {
				if(j!=i) {
					xx[i]-=a[i][j]*x[j];
				}
			}
		xx[i]=xx[i]/a[i][i];
		}
		// Ax
		for(i=0; i<n; i++){
			ax[i]=0;
			for (j = 0; j < n; j++) {
				ax[i]+=a[i][j]*xx[j];
			}
		}
		// b-Ax
		for(i=0; i<n; i++){
			berr[i]=b[i]-ax[i];
		}
		// norm
		bb = 0;
		for(i=0; i<n; i++){
			bb += pow(berr[i], 2.0);
		}
		err = sqrt(bb);
		
		for(i=0;i<n;i++) {
			x[i]=xx[i];
		}
		if(err<eps) break;
	}
	printf("x=\n");
	for(i=0;i<n;i++) {
		printf("%8.4f\n",xx[i]);
	}
    printf("iteration times %d\n",k+1);

	return 0;
}


=============================================
		Results
=============================================

x=
  0.4138
  0.1724
  0.8621
iteration times 37