十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
int GetRoot(float a, float b, float c ,double* root){
创新互联公司是一家专注于网站设计制作、网站设计与策划设计,津南网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:津南等地区。津南做网站价格咨询:18980820575
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语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
#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语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
使用二分法求解f(x)=x^3-x-1=0在区间(1,2)上的解
(2011-05-12 22:32:32)
转载▼
标签:
二分法
区间
函数
方程
求解
计算方法
杂谈
分类: C
//使用二分法求解f(x)=x^3-x-1=0在区间(1,2)上的解
#includeiostream.h
#includemath.h
const double eps=0.000001; //对于精度的控制
//为方便的代码的书写,故编写此函数,以此求得此函数值
double f(double x)
{
return pow(x,3)-x-1; //当函数发生改变时,修改此处即可
}
//解的具体实现的函数
void solequ(double min,double max,double eps)
{
double temp;
if(f(min)*f(max)0)//判断方程在此区间是否有解
{ //有解的情况的求解过程
while(f(max)!=0)
{
temp=(min+max)/2;
if(f(temp)*f(min)0)
{
max=temp;
if(fabs(f(max)-f(min))eps)
break;
}
else
{
min=temp;
if(fabs(f(max)-f(min))eps)
break;
}
}
cout"方程的解为: "tempendl;
}
else //无解的处理
cout"此方程在此区间上无解"endl;
}
//主函数入口
int main()
{
double min,max,temp;
cout"请输入积分下限: ";
cinmin;
cout"请输入积分上限: ";
cinmax;
if(minmax) //对于用户输入次序相反的处理
{
temp=max;
max=min;
min=temp;
}
solequ(min,max,eps);
return 0;
}
你参考下这个程序,二分法
你没有考虑a=0的情况,我把我写的给你看看,你看看有什么不同吧:
#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;
}
具体的输入输出格式可能不一样,因为不清楚你的要求,有疑问可以问我