#include <stdio.h> #include <stdlib.h> #include <mpc.h> void init_matrix(int n, double (*a)[n][n]) { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) (*a)[i][j]=10.; for(i=0;i<n;i++) (*a)[i][i]=10.*n; } void print_matrix(int n, double (*a)[n][n]) { int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%lf\t",(*a)[i][j]); printf("\n"); } } int [*]main(int [host]argc, char *[host]argv[]){ [host]: { int n, i, j; n = atoi(argv[1]); if(n<=0) printf("Wrong input: n = %d\n", n); else { double a[n][n]; init_matrix(n,&a); printf("\n Source matrix :\n"); print_matrix(n,&a); for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { double t; t = a[j][i] / a[i][i]; if(a[j][i]!=0) a[j][i:n-1] -= t * a[i][i:n-1]; } } printf("\n Matrix after LU transformation: \n"); print_matrix(n,&a); } } }