main()
{
int a,b,c,d,x,y,m,n;
printf ("请输入a,b,c,d,m,n值,并以空格为分隔符\n\n");
scanf ("%d%d%d%d%d%d",a,b,c,d,m,n);
x=(m*d-n*n)/(a*d-b*c);
y=(m-a*x)/b;
printf ("x=%d,y=%d\n\n",x,y);
}
这样好像更好一点.
如果a,b,c,d,m,n全部等于1的话,就真有无数解了.
哪编程应该怎么编呢?
----------------解决方案--------------------------------------------------------
1、行列式
2、Gauss消元法求解线性方程组
3、上网搜索
不知道是不是
----------------解决方案--------------------------------------------------------
a等于b且c等于d但m!=n 无解
而如果系数成比例,无数解(也就是等式一乘以某个常数就变成等式二)
----------------解决方案--------------------------------------------------------
如果是3元一次方程组或4元一次方程组呢,如3x-5y-6Z=10;5x+8y+10z=0;2x-7y+9z=-21.若象楼上的程序那样,先笔算出结果,然后在把结果公式写到C程序里面吗?这样岂不是很复杂,也没有体现计算机的优势啊?
----------------解决方案--------------------------------------------------------
以下是引用Fjcyz在2006-2-10 23:20:00的发言:
原来如此.
#include "stdio.h"
main()
{
int a,b,c,d,x,y,m,n;
printf ("请输入a,b,c,d,m,n值,并以空格为分隔符\n\n");
scanf ("%d%d%d%d%d%d",a,b,c,d,m,n);
x=(b*n-m*d)/(b*c-a*d);
y=(m-a*x)/b;
printf ("x=%d,y=%d\n\n",x,y);
}
奇怪为什么算出来不对???
原来如此.
#include "stdio.h"
main()
{
int a,b,c,d,x,y,m,n;
printf ("请输入a,b,c,d,m,n值,并以空格为分隔符\n\n");
scanf ("%d%d%d%d%d%d",a,b,c,d,m,n);
x=(b*n-m*d)/(b*c-a*d);
y=(m-a*x)/b;
printf ("x=%d,y=%d\n\n",x,y);
}
奇怪为什么算出来不对???
#include "stdio.h"
main()
{
int a,b,c,d,x,y,m,n;
printf ("请输入a,b,c,d,m,n值,并以空格为分隔符\n\n");
scanf ("%d%d%d%d%d%d",a,b,c,d,m,n);
if (((b*c-a*d)=0)
{
printf("你输入的方程无解或无唯一解!");
}
else
{
x=(b*n-m*d)/(b*c-a*d);
y=(m-a*x)/b;
printf ("x=%d,y=%d\n\n",x,y);
}
}
----------------解决方案--------------------------------------------------------
^_^
scanf 函数少了 &
原先哪个方程是可以求出来的,就是少了 &,但没有考虑无解情况. ^_^
----------------解决方案--------------------------------------------------------
其实可以用矩阵来算,但是那些矩阵一整套计算是很麻烦的。
----------------解决方案--------------------------------------------------------