#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int Tridiag(int n,
float a[],
float b[],
float c[],
float d[],
float x[] )
{
float t[11];
float p[11];
float s[10];
float y[11];
int i,j;
for(i=2;i<=n;i++)
p[i]=a[i];
t[1]=b[1];
if(t[1]==0)
return 0;
s[1]=c[1]/t[1];
t[1]=d[1]/t[1];
for(i=2;i<=n-1;i++)
{t[i]=b[i]-a[i]*s[i-1];
if(t[i]==0)
return 0;
s[i]=c[i]/t[i];
y[i]=(d[i]-a[i]*y[i-1])/t[i];
}
t[n]=b[n]-a[n]*s[n-1];
if(t[n]==0)
return 0;
x[n]=(d[n]-a[n]*y[n-1])/t[n];
for(i=n-1;i>=1;i--)
x[i]=y[i]-s[i]*x[i+1];
return 1;
}
int main()
{ int n=3;
float a[]={1,1};
float b[]={2,0.5,1.5};
float c[]={-1,-1};
float d[]={1,2};
float x[3];
Tridiag(n ,a, b, c, d, x);
printf("x1= %f \n x2=%f\n x3=%f\n", x[1] ,x[2],x[3]) ;
printf("\n");
system("PAUSE");
return 0;
}