Dengan dirembuk teman2 lain seperjuangan akhirlah lahir source code yang masih belum sempurna.Dibawah ini adalah souce codenya
#include<stdio.h>
#include<stdlib.h>
float* getElemPtr(float* matrix, int size, int row, int col){
return (matrix+(row* size)+col);
}
void printMatrix(float* m,int size){
int row,col;
for (row=0;row<size;row++){
for (col=0;col<size;col++){
printf ("%.3f",*getElemPtr(m,size,row,col));
printf(" ");
}
printf (" ");
}
}
int row,col;
for (row=0;row<size;row++){
for (col=0;col<size;col++){
*getElemPtr (m,size,row,col)=0.0f;
}
}
}
int size=0;
printf ("matriks harus bujur sangkar (nxn). n= ");
scanf ("%d",&size);
return size;
}
void promptMatrix (float *m,int size){
int row,col;
for (row=0;row<size;row++){
for (col=0;col<size;col++){
float f=0.0;
printf ("m[%d][%d]=",row,col);
scanf ("%f",&f);
*getElemPtr (m,size,row,col)=f;
}
}
}
int main(){
int n=promptSize();
printf ("size=%d ",n);
float a[n][n];
promptMatrix (&a[0][0],n);
printf ("a= ");
printMatrix (&a[0][0],n);
float u[n][n];
float l[n][n];
setZeroToAllElem (&u[0][0],n);
setZeroToAllElem (&l[0][0],n);
//================BEGIN DOOLITTLE=======================
int k;
for (k=0;k<n;k++){
l[k][k]=1;
int j;
for (j=k;j<n;j++){
float sigma1=0;
int m=0;
for (m=0;m<k;m++){
sigma1=sigma1+l[k][m]*u[m][j];
}
u[k][j]=a[k][j]-sigma1;
}
int i;
for (i=k+1;i<n;i++){
float sigma2=0;
int m=0;
for (m=0;m<k;m++){
sigma2=sigma2+l[i][m]*u[m][k];
}
l[i][k]=(a[i][k]-sigma2)/u[k][k];
}
}
//===========END DOOLITTLE=============================
printf ("l= ");
printMatrix (&l[0][0],n);
printf ("u= ");
printMatrix (&u[0][0],n);
}
| eko May 23, 2007 01:33 AM PDT good jar kebetulan gw bwlum | ||
| eko May 23, 2007 01:32 AM PDT good jar kebetulan gw belum buat bisa gw jadiin referensi buat tugas gw.thanks alot.... | ||
| Leave a Comment: |
| Previous Entry | Home | Next Entry |




