如何用C语言解二元一次方程组

例子是X1+X2=35;2X1+X2=50;给出求解出x1,x2的代码
3q

第1个回答  推荐于2017-09-13

首先要找到二元一次方程组的通解,例如:

ax+by=m

cx+dy=n

不难算出

x=(md-bn)/(ad-bc)

y=(mc-an)/(bc-ad)

这相当于知道了算法,接下来就可以编程序了:

int main(){
int a,b,c,d,m,n;
    double x=0,y=0;
     scanf("%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&m,&n);
    if(a*d==b*c||b*c==a*d)puts("无解");
    else{
         x=(m*d-b*n)/(a*d-b*c);
         y=(m*c-a*n)/(b*c-a*d);
         printf("x=%f,y=%f",x,y);
    }
    return 0;
}

  输入系数,就可以计算了

第2个回答  2013-10-19
你没有说清楚条件哦,X1和X2一定要是整数吗?如果是的话 由题意能看出X1是大于0,小于35的 那么可以用循环来做
void main()
{
int a,b;
for(a=1;a<35;a++)
{
b=35-a;
if(2*a+b==50)
{
printf("%d ",a); /*打印出每组符合要求的a和b*/
printf("%d\n",b);
}
}
}
第3个回答  2013-10-19
#include "stdio.h"
void fun(double a[],double b[]){
double re[2];
re[0]=re[1]=0.0;
if((a[0]==0.0&&a[1]==0.0)||(a[0]==0.0&&b[0]==0.0)||(b[0]==0.0&&b[1]==0.0)||(a[1]==0.0&&b[1]==0.0))
{ printf("�0�2�0�7�0�5�0�9");
return;
} if(a[0]!=0.0) {
if(a[0]*b[1]-a[1]*b[0]==0.0)
{
printf("�0�2�0�7�0�5�0�9");
}
re[1]=(a[0]*b[2]-b[0]*a[2])/(a[0]*b[1]-a[1]*b[0]);
re[0]=(a[2]-re[1]*a[1])/a[0];
}
else
{
re[1]=a[2]/a[1];
re[0]=(a[2]-a[1]*re[1])/b[0];
}
printf("x1=%f\n",re[0]);
printf("x2=%f\n",re[1]);
}
void main()
{
double a1[3],b1[3];
a1[0]=1;
a1[1]=1;
a1[2]=35;
b1[0]=2;
b1[1]=1;
b1[2]=50;
fun(a1,b1);
}
调试过了,没有错误.本回答被网友采纳
第4个回答  2019-10-22

解二元一次方程组的解法

相似回答