Ⅰ 如何用c语言解二元一次方程组
首先要找到二元一次方程组的通解,例如:ax+by=m cx+dy=n不难算出 x=(md-bn)/(ad-bc) y=(mc-an)/(bc-ad) 这相当于知道了算法,接下来就可以编程序了:
intmain(){
inta,b,c,d,m,n;
doublex=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);
}
return0;
}
输入系数,就可以计算了
Ⅱ c语言写二元一次方程
if(b*b-4*a*c>=0) x1=x1; x2=x2;else x1=0;x2=0;
是不是你这儿没有用大括号的原因?
Ⅲ C语言编程,二元一次方程组
首先要找到二元一次方程组的通解,例如: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).
Ⅳ c语言求解,求解二元一次方程
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c;
float x1,x2;
float x3,x4;
float k1,k2,k3;
printf("please input:a,b,c");
scanf("%f%f%f",&a,&b,&c);
k1=b*b;
k2=4*a*c;
k3=sqrt(b*b-4*a*c);
if(fabs(a)<=1e-6)
{
printf("the input is error\n");
return;
}
if(k1>k2)
{
x1=(-b+k3)/(2*a);
x2=(-b-k3)/(2*a);
printf("x1=%.2f,x2=%.2f",x1,x2);
}
else if(k1==k2)
{
x1=x2=(-b+k3)/(2*a);
printf("x1=x2=%.2f",x1);
}
else
{
x3=-b/(2*a);
x4=sqrt(4*a*c-b*b)/(2*a);
printf("x1=%.2f+%.2f i\n",x3,x4);
printf("x2=%.2f-%.2f i\n",x3,x4);
}
给点赞助!}
Ⅳ C语言求二元一次方程,看不懂咩,哪位高手解释一下啦啦啦啦!!!!(详细一点的)
第一处:将a、b的值替换为d的值。
第二处:as数列中的第一个数(最小的数)为1,下一行同上。下面那个问号就是两个方程而已。
第三个是将T的值替换为它的相反数。
第四个是两个类似方程y=kx的东西,输入数值的。
没了。
四处分别是三个问号和一个看不懂的地方,按照顺序排的。
Ⅵ 用c语言写二元一次方程
printf("该一元二次方程有两个解,x1=%f,x2=%f ",x1,x2);//你引号打错了啊。。。
Ⅶ 用C语言编写解二元一次方程的程序
假设的情况:
输入没有错误;
x 总是在前面,y 总是在后面;
不存在某个变量系数为 0 的情况(即总是二元方程);
不考虑小数,其实考虑小数也简单,你可以自己思考如何实现。
首先,使用 scanf() 将回车之前的整个字符串扫描进来,放进 str 变量中;
之后,分别以 x y = 为界,找到它们分隔的三个字符串,即从 str 的第一位开始循环,当遇到 'x' 时,停止并将之前的所有字符存到 x 的系数字符串 xStr 中,再从 x 之后开始寻找,遇到 'y' 时将找到的 'x' 与 'y' 之间的字符存到 y 的系数字符串 yStr 中,再向后从 '=' 开始直到结束,存为结果字符串 sumStr。
这样,我们得到的三个字符串都具有相同的格式,一定可以通过某种方式将其转换为一个数字,使用同一个函数就可以做到。
对于某个字符串来说,它可能是以负号 '-' 开头,也可能以正号开头 '+',也可能没有符号,也可能为空,分别考虑:以负号开头的,将其作为负数,以正号开头或没有符号的,将其作为正数;为空的字符串将其视为 1。
截取符号之后,如果没有剩余字符了,将其视为 1,再与符号相乘,就是最终结果。
如果还有剩余,那么之后的字符都是纯数字了(不考虑小数),从字符串的最后一位往前开始循环,下标记为 i(从0开始一直到最前面的数字位数),每一位字符记为 ch,则 n=(int)(ch-'0') 就是当前字符所代表的数字,用 n*pow(10, i) 就得到了当前数字的实际值,把所有的乘积都加起来,就得到了总的系数的绝对值,再乘以符号,就得到了系数值。
实现了这个部分之后,假设的情况也可以一一实现了,无非就是标记归属的问题。我没有贴代码是因为我看到你问的问题非常认真,我希望你可以通过我的描述自己去实现它。这里用到了一些字符串相关的函数,例如 strlen(str) 可以获得 str 字符串的长度,strncpy(dest, src, 3) 可以将 src 字符串的前三位拷贝到 dest 字符串中,strncpy(dest, src+3, 3) 可以将 src 字符串的 4~7 位拷贝到 dest 字符串中。
Ⅷ c语言表达解二元一次方程
#include
#include
int
main()
{
double
a,b,c;
printf("please
input
a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);
double
dirt=b*b-4*a*c;
if
(a==0)//两个==
printf("此方程非二元一次方程");
if
(dirt==0)//两个==
{
printf("x1,x2=%f",(-b)/(2*a));
}
else//加大括号
不解释
{
printf("x1=%f\n",(-b+sqrt(dirt))/(2*a));
printf("x2=%f\n",(-b-sqrt(dirt))/(2*a));
}
return
0;
}
错误太多
太基础
多看书
仔细点
不解释
Ⅸ C语言求二元一次方程
scanf你的格式要输入逗号确定输入了吗执行到输出此方程非二元一次方程就应该退出了 if里应该用双等号 if(a==0)下面还有一个