連立方程式
ax + by = c
dx + ey = f
の解x,yを出力して終了するプログラムを作成する。a,b,c,d,e,f はそれぞれ、-1000以上1000以下の実数とし、連立方程式の解が一意に存在するものとする。
私の疑問:「-0.000」という出力は大丈夫なのか?
a(実数)
b(実数)
c(実数)
d(実数)
e(実数)
f(実数)
x(実数)
y(実数)
注:小数点以下第3位まで出力すること。第4位は切り上げ切り捨ていずれでも良い。
1.0
2.0
3.0
4.0
5.0
6.0
-1.000
2.000
まあ、たいていの人は普通に方程式を解くでしょう。式は次のようになります。
x=(e*c - b*f)/(e*a - b*d);
y=(d*c - a*f)/(b*d - a*e);
#include <stdio.h> int main(){ double a,b,c,d,e,f,x,y; scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f); x=(e*c - b*f)/(e*a - b*d); y=(d*c - a*f)/(b*d - a*e); printf("%f\n%f\n",x,y); return 0; }
空いている人が~以下略。とりあえず、分母が0になることは考えなくても良いようです(その場合解が一意に存在しないから)。