c语言用函数来求方程的根,求根函数c语言程序

用C语言求方程的根

你没有考虑a=0的情况,我把我写的给你看看,你看看有什么不同吧:

城步网站建设公司创新互联建站,城步网站设计制作,有大型网站制作公司丰富经验。已为城步上1000家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的城步做网站的公司定做!

#includestdio.h

#includemath.h

main()

{

int a,b,c;

double DT,x,x1,x2;

scanf("%d %d %d",a,b,c);

DT=b*b-4*a*c;

if((a==0)(b==0))

printf("Input error!\n");

else

{

if(a==0)

{ x=-c/(1.*b);

printf("x=%.6f\n",x);

}

else

{

if(DT==0)

{x=-b/(2*a);

printf("x1=x2=%.6f\n",x);

}

if(DT0)

{ x1=(-b+sqrt(DT))/(2*a);

x2=(-b-sqrt(DT))/(2*a);

printf("x1=%.6f\nx2=%.6f\n",x1,x2);

}

if((DT0)(b==0))

{DT=-DT;

x1=(sqrt(DT))/(2*a);

x2=(-sqrt(DT))/(2*a);

printf("x1=%.6fi\nx2=%.6fi\n",x1,x2);

}

if((DT0)(b!=0))

{DT=-DT;

x1=-b/(2.*a);

x2=sqrt(1.*DT)/(2*a);

printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi\n",x1,x2,x1,x2);

}

}

}

return 0;

}

具体的输入输出格式可能不一样,因为不清楚你的要求,有疑问可以问我

c语言函数求方程的根

#includestdio.h

#includestdlib.h

#includemath.h

int main()

{

float a,b,c,x,x1,x2,d;

scanf("%f %f %f",a,b,c);

d=b*b-4*a*c;

if(a==0)

{

if(b==0)

{

if(0==c)

{

printf("等式0!\n");

}

else

{

printf("输入错误!\n");

}

}

else

{

printf("只能构成一元一次方程,x=%.6f\n",0==-(float)c/b ? 0 : -(float)c/b);

}

}

else

{

if(d0)

{

x1=(-b+sqrt(-d))/(2.0*a);

x2=(-b-sqrt(-d))/(2.0*a);

printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi\n",(-b)/(2.0*a),sqrt(-d)/(2.0*a),(-b)/(2.0*a),sqrt(-d)/(2.0*a));

}

else if(d==0)

{

printf("x1=x2=%.6f\n",(-b)/(2.0*a));

}

else

{

x1=(-b+sqrt(d))/(2.0*a);

x2=(-b-sqrt(d))/(2.0*a);

printf("x1=%.6f\nx2=%.6f\n",x1,x2);

}

}

system("PAUSE");

return EXIT_SUCCESS;

}

用C语言求方程的根,用3个函数分别求当大于0、等于0和小于0时的根并输出结果。从主函数中输入abc的值。

给你重写一个你对照看——

#include "stdio.h"

#include "math.h"

void zero(float a,float b){

printf("x1 = %f\n",-b/2/a);

printf("x2 = %f\n",-b/2/a);

}

void one(float a,float b,float d){

printf("x1 = %f\n",(-b+d)/2/a);

printf("x2 = %f\n",(-b-d)/2/a);

}

void two(float a,float b,float d){

printf("x1 = %f%+fi\n",-b/2/a,d/2/a);

printf("x2 = %f%+fi\n",-b/2/a,-d/2/a);

}

int main(int argc,char *argv[]){

float a,b,c,dlt;

printf("Input a, b, c(R: all)...\n");

scanf("%f%f%f",a,b,c);

if((dlt=b*b-4*a*c)==0)

zero(a,b);

else if(dlt0){

one(a,b,sqrt(dlt));

}

else

two(a,b,sqrt(-dlt));

return 0;

}

运行样例:

有问题续问。

用C语言中,如何用调用函数编写求一元二次方程的根

int GetRoot(float a, float b, float c ,double* root){

double delta, deltasqrt ;

delta = b* b - 4*a*c ;

if(delta0) return 0 ;

deltasqrt = sqrt(delta) ;

if (a!=0.0){

root[0] = (deltasqrt - b)/(2.0*a) ;

root[1] =  (-deltasqrt - b)/(2.0*a) ;

}

if (root[0] == root[1]) return 1;

else return 2 ;

}

int main(void){

//计算方程的根

float  a = 2.0,b =6.0,c=3.0 ;//a,b,c s是参数

double root[2] ;//root是得到的两个根

int n = GetRoot(a,b,c,root) ;

if (n1){

printf("方程无根") ;

}else{

printf("方程的解为:%f,%f",root[0],root[1]) ;

}

}

扩展资料:

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

C语言特点:

(1)简洁的语言

C语言包含有各种控制语句仅有9种,关键字也只有32

个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

(2)具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

(3)丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

(4)丰富的运算符

C语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

(5)可对物理地址进行直接操作

C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

(6)代码具有较好的可移植性

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大地减少了程序移植的工作强度

(7)可生成的高质量目标代码,高执行效率的程序

与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。


名称栏目:c语言用函数来求方程的根,求根函数c语言程序
分享URL:http://azwzsj.com/article/hcdhdo.html