c·c++/c 프로그래밍

4원 1차 연립방정식 - 2개의 식

바로이순간 2012. 8. 23. 14:25

미지수가 4개인 일차 연립 방정식을 풀때

식이 2개이고 미지수가 4개이면요.(x,y,z,w라하면)


미지수를 모두 값으로 확정할 수 없고 그중 2개만  다른 미지수로 나타낼수 있잖아요

(z,w를 x,y에 대한 식으로 표현)


그때 C언어로  어떻게 코딩해야 하나요?

--------------------------------------------------------------------------------------------


#include <stdio.h> 

#include <math.h>  

int main() { 

   int i; 

   double a[5]; 

   double b[5]; 

   double det, det1, x1, y1, c1, x2, y2, c2; 

   printf("첫번째 식 계수입력: "); 

   for(i=0;i<5;++i) scanf("%lf", &a[i]); 

   fflush(stdin); 

   printf("두번째 식 계수입력: "); 

   for(i=0;i<5;++i) scanf("%lf", &b[i]); 

   det = a[2]*b[3]-a[3]*b[2]; 

   det1=1.0/det; 

   x1 = det1*(a[3]*b[0]-a[0]*b[3]); 

   y1 = det1*(a[3]*b[1]-a[1]*b[3]); 

   c1 = det1*(a[4]*b[3]-a[3]*b[4]); 

   printf("z = "); 

   if(fabs(x1)>0.0000001) printf("%fx",x1); 

   if(fabs(y1)>0.0000001) { 

        if(y1>0) printf("+");  

        printf("%fy", y1); 

   } 

   if(fabs(c1)>0.0000001) { 

        if(c1>0) printf("+");  

        printf("%f", c1); 

   } 

   printf("\n"); 

   x2 = det1*(a[0]*b[2]-a[2]*b[0]); 

   y2 = det1*(a[1]*b[2]-a[2]*b[1]); 

   c2 = det1*(a[2]*b[4]-a[4]*b[2]); 

   printf("w = "); 

   if(fabs(x2)>0.0000001) printf("%fx",x2); 

   if(fabs(y2)>0.0000001) { 

        if(y2>0) printf("+");  

        printf("%fy", y2); 

   } 

   if(fabs(c2)>0.0000001) { 

        if(c2>0) printf("+");  

        printf("%f", c2); 

   } 

   return 0;  

}