c语言二元一次方程组的
‘壹’ c语言求二元一次方程
#include <stdio.h>
#include<math.h>
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语言写二元一次方程
printf("该一元二次方程有两个解,x1=%f,x2=%f ",x1,x2);//你引号打错了啊。。。
‘叁’ 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 <stdlib.h>
#include <math.h>
int main()
{
double a,b,c,del,k;
s:
printf ("a=");scanf ("%lf",&a);
printf ("b=");scanf ("%lf",&b);
printf ("c=");scanf ("%lf",&c);
del=pow (b,2)-4*a*c;
if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");
else if (b==0&&c!=0) {printf ("Get out,don't ask me!
");exit (0);}
else printf ("%.0lfX+%.0lf=0
X=%lf",b,c,-c/b);//a为0时为一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0
X=%lf",a,b,c,-b/(2*a));//del等于0
else if (0>del) printf ("无实数解!");
else printf ("%lfX^2+%lfX+%lf=0
X1=%lf
X2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf ("
continue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}
‘伍’ 用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语言解二元一次方程组
设计思路如下:
1、问题描述:
给定一个二元一次方程组,形如:
a * x + b * y = c;
d * x + e * y = f;
x,y代表未知数,a, b, c, d, e, f为参数。
求解x,y。
2、数据规模和约定:
0 <= a, b, c, d, e, f <= 2147483647。
3、设计思路:
二元一次方程组是由两个含有两个未知数的方程组成的,要求解,就要把二元转化为一元。由二元一次方程组的解法思想知,要把二元转化为一元.
实现的功能代码如下:
因为在求解过程中只有数之间的运算,而没有整个式子的运算,因此这种方法被广泛地用于计算机中。
‘柒’ 我有一个C语言解二元一次方程组的程序需要解释说明
#include<iostream>//包含头文件iotream,forcin,cout,endl
usingnamespacestd;//引入名字空间,这样cin,cout,endl就不需要使用std::
voidprintHelp()//输出显示信息(引号内的内容,endl为换行)
{
cout<<"方程组格式:"<<endl
<<"格式ax+by=c"<<endl
<<"格式dx+ey=f"<<endl;
}
intmain()
{
printHelp();//调用函数,显示信息
doublec;//定义double型变量c,d,e,f,a,b
doubled;
doublee;
doublef;
doublea;
doubleb;
cout<<"a=";
cin>>a;//从键盘输入一个整数放在变量a里
cout<<"b=";
cin>>b;//读取键盘输入,数据存入b变量中
cout<<"c=";
cin>>c;
cout<<"d=";
cin>>d;
cout<<"e=";
cin>>e;
cout<<"f=";
cin>>f;
if(a*e==b*d)//如果的数据中a乘以e等于b乘以d相等的话
{
cout<<"不存在唯一解!"<<endl;
return-1;//退出程序,退出码为-1
}
doublex=(e*c-b*f)/(a*e-b*d);//计算右边的表达式,结果存入x,y
doubley=(c*d-a*f)/(b*d-a*e);
cout<<"x="<<x<<endl;//输出x,y
cout<<"y="<<y<<endl;
return0;
}
‘捌’ 用c语言编制求二元一次方程组的根
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c;
float x1,x2,k;
printf("\n input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
{ x1=-c/b;
printf("\njie:x=%f",x1);
}
else
{ k=sqrt(b*b-4*a*c);
if(fabs(k-0.0)>=1e-6)
{ x1=((-b)+k)/2*a;
x2=((-b)-k)/2*a;
printf("\njie:x1=%8.3f,x2=%8.3f",x1,x2);
}
else
{ x1=(-b)/2*a;
x2=k/2*a;
printf("\njie:x1=%4.2f+%4.2fi ,x2=%4.2f-%4.2fi");
}
}
}
这个我试过了,OK!
‘玖’ c语言编写二元一次方程组求解,菜鸟级,帮忙指出错误,谢谢
#include
#include
#include
#include
main()
{
int
x1,x2,x3,y1,y2,y3,d1,d2,d3;
/*赋任意值,已知数和未知数都是整数
*/
signed
int
x=-32767,y=-32767;
/*未知数取值范围,可修改*/
int
r1=0,r2=0,r3=0;
/*方程是否成立变量*/
int
suc=0;
/*解题是否成功变量*/
for(;x<=32767;x++)
{
for(y=-32767;y<=32767;y++)
{
if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))==d1)
r1=1;
if(sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))==d2)
r2=1;
if(sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3))==d3)
r3=1;
if(r1&&r2&&r3)
{
suc=1;
break;
}
else
{
r1=0;
r2=0;
r3=0;
}
}
if(suc)
break;
}
if(suc)
printf("x=%d,y=%d",x,y);
/*有解输出结果*/
esle
printf("no
solution
in
the
range");
/*在限定范围内无解*/
}