반응형
#include  
#include  
#include 

double factor; 
int n, i, j, k; 

int main() 
{ 

printf(" \n 행렬의 사이즈 n =  "); 
scanf_s(" %d", &n); 

float** a; 
a = (float**)malloc(sizeof(float*) * n); 
a[0] = (float*)malloc(sizeof(float) * n); 
for (i = 1; i < n; i++) { 
a[i] = a[i - 1] + n; 

} 

printf(" 계수행렬 A(i,j)을 입력하시오 \n"); 
for (i = 0; i < n; i++) 
{ 

for (j = 0; j < n; j++) 
{ 
printf(" A(%d, %d) :   ", i, j); 
scanf_s(" %f", &a[i][j]); 
} 
} 


printf("\n 행렬 출력 \n"); 
for (i = 0; i < n; i++) 
{ 
printf("\n"); 
for (j = 0; j < n; j++) 
{ 
printf(" %10.f", a[i][j]); 
} 

} 
printf("\n"); 

printf("\n 행렬 주소 출력 \n"); 
for (i = 0; i < n; i++) 
{ 
printf("\n"); 
for (j = 0; j < n; j++) 
{ 
printf(" %d   ", &a[i][j]); 
} 

} 
printf("\n"); 


for (k = 0; k < n - 1; k++) 
{ 
for (i = k + 1; i < n; i++) 
{ 
factor = a[i][k] / a[k][k]; 

for (j = k + 1; j < n; j++) 
{ 
a[i][j] = a[i][j] - factor * a[k][j]; 
} 


} 
} 

printf("\n 계산결과 출력 \n"); 
double sol = 1; 
for (i = 0; i < n; i++) 
{ 
for (j = 0; j < n; j++) { 
if (i == j) 
{ 

printf("%10.2f \n", a[i][j]); 
sol = sol * a[i][j]; 

} 

} 
} 
printf("행렬식의 답은 : %lf", round(sol)); 
printf("\n "); 

free(a[0]); 
free(a); 

return 0; 
}
728x90
반응형

+ Recent posts