c语言求方程ax2
1. c语言编程求解一元二次方程ax2+bx+c=0的根,要求系数a,b,c从键盘输入在实数范围内求解
从#include "stdio.h"开始
2. 用c语言编写:求方程ax2+bx+c=0的实数根。a,b,c由键盘输入,a≠0且b2-4ac>0;谢谢!
#include<stdio.h>
#include<math.h>
floatx1,x2;
main()
{
voidf1(floata1,floata2,floata3);
voidf2(floatb1,floatb2,floatb3);
voidf3(floatc1,floatc2,floatc3);
floata,b,c,t;
printf("Inputa=,b=,c= ");
scanf("a=%f,b=%f,c=%f",&a,&b,&c); //输入格式为a=1,b=5,c=6;
t=b*b-4*a*c;
if(fabs(t)<=1e-6) // 判断t==0 的情况。
f1(a,b,c);
else
{
渣橘唤if(t>1e-6) // t>0的情况
f2(a,b,c);
else
f3(a,b,c);
}
}
voidf1(floata1,floata2,floata3)
{
x1伍宏=x2=-a2/(2*a1);
printf("x1=x2=%f ",x1);
}
voidf2(floatb1,floatb2,floatb3)
{
floatdisc;
disc=sqrt(b2*b2-4*b1*b3);
x1=(-b2+disc)/(2*b1);
x2=(-b2-disc)/(2*b1);
printf("x1=%f x2=%f ",x1,x2);
}
voidf3(floatc1,floatc2,floatc3)
{
floatdisc,t1,t2;
disc如凯=sqrt(4*c3*c1-c2*c2);
t1=-c2/(2*c1);
t2=disc/(2*c1);
printf("x1=%f+%fi ",t1,t2);
printf("x2=%f-%fi ",t1,t2);
}
3. C语言求方程ax2+bx+c=0的根。
利用类的形式刻画一元二次方程:
采用一元二次方程根特性 对2次系数a和delta进行判断 进而得出根的三种情:
#include<iostream>
#include<cmath>
using namespace std。
支持继承和重用:
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更谈做有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
(3)c语言求方程ax2扩展阅读:
工作原理:
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
生成程序是指将源码(C++语句)转换成一个可以运行的应锋贺用程序的过程。如果程序的编写是正确的,含基衡那么通常只需按一个功能键,即可搞定这个过程。该过程实际上分成两个步骤。
4. c语言 编程 求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。
#include<stdio.h>拦郑运
#include<math.h>
main()
{
void x(float,float,float,float);
void y(float,float,float);
float a,b,c,d=0;
printf("输入a b c的值丛逗:\n");
scanf("%f %f %f",&a,&b,&c);
d=(b*b)-(4.0*a*c);
if (d>0)
x(a,b,c,d);
else if (d==0)
y(a,b,c);
else
printf("无解");
}
void x(float a,float b,float c ,float d)
{
float x1,x2;
x1=(-b+sqrt(d))/简梁(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.3f\nx2=%.3f\n",x1,x2);
}
void y(float a,float b,float c)
{
float x1;
x1=-b/(2.0*a);
printf("x1=x2=%.3f",x1);
}
5. C语言编程,求一元二次方程 ax2+bx+c=0 的解,谢谢
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
for (int i=0;i<2;i++)
{
double a,b,c,delta,p,q;
cin>>a>>b>>c;
delta=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(fabs(delta))/(2*a);
if (delta>=0)
cout<<p+q<<endl<<p-q<<endl;
else
{
cout<<p<<"+j"<<q;
cout<<endl<<p<<"-j"<<q<<endl;
}
}
return 0;
}
(5)c语言求方程ax2扩展阅读:
return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。
如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。
6. 用C语言求方程ax2+bx+c=0的根。
#include<stdio.h>
#include<math.h>
int main ()
{
double a,b,c,d,p;
printf("请输入a,b,c 的值:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
printf("不是二次方程");
else
{
d=b*b-4*a*c;
if(d==0)
{
printf("有两个相等的根 x=%7.2lf ",-b/(2*a));
}
if (d>0)
{
printf("有两个不相等的根 X1=%7.2lf X2=%7.2lf ",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
if(d<0)
{
p=sqrt(-d/(2*a));
printf("有两个共轭复根 X1=%7.2lfi-%7.2lf X2=%7.2lfi-%7.2lf ",p,b/2,-p,b/2);
}
}
return 0;
}
(6)c语言求方程ax2扩展阅读:
scanf函数用法:
scanf("输入控制符",输入参数);
功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。
用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。
如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'