c语言编程出错,高手帮忙
求解三元一次方程组 a1x+b1y+c1z=d1a2x+b2y+c2z=d2
a3x+b3y+c3z=d3
的解,用行列式原理,但运行结果出错,总是显示:
x=0.000000
y=0.000000
z=1.#QNAN0
#define E(a,b,c,d,e,f,g,h,i) a*e*i+b*f*g+d*h*c-c*e*g-b*d*i-a*f*h;
#include <stdio.h>
void main ()
{
double a1,b1,c1,d1,
a2,b2,c2,d2,
a3,b3,c3,d3,
D,D1,D2,D3,
x,y,z;
printf("请输入方程一的系数a1,b1,c1和方程值d1:");
scanf("%lf%lf%lf%lf",&a1,&b1,&c1,&d1);
printf("请输入方程二的系数a2,b2,c2和方程值d2:");
scanf("%lf%lf%lf%lf",&a2,&b2,&c2,&d2);
printf("请输入方程三的系数a3,b3,c3和方程值d3:");
scanf("%lf%lf%lf%lf",&a3,&b3,&c3,&d3);
D=E(a1,b1,c1,a2,b2,c2,a3,b3,c3);
D1=(d1,b1,c1,d2,b2,c2,d3,b3,c3);
D2=(a1,d1,c1,a2,d2,c2,a3,d3,c3);
D3=(a1,b1,d1,a2,b2,d2,a3,b3,d3);;
x=D1/D;
y=D2/D;
z=D3/D;
printf("x=%f\ny=%f\nz=%f\n",&x,&y,&z);
}