编程求方程的根
1. c语言编写一个求一元二次方程的实根的程序,该怎么写
步骤:
打开visual C++ 6.0-文件-新建-文件-C++ Source File
2.
定义变量:
#include <stdio.h>
#include <math.h>
void main()
{
double a,b,c; /*定义系数变量*/
double x1,x2,p; /*定义根变量和表达式的变量值*/
2. 已知二元一次方程的三个系数,用C语言编程求方程的一个根
设3个系数为a、b、c,均为double型变量,其值由键盘输入。先求出b*b-4*a*c之值,根据此值大于0、小于0、等于0的三种情况分别求根;还要考虑a为0,a、b均为0的具体情况。代码如下:
#include"stdio.h"
#include"math.h"
intmain(intargc,char*argv[]){
doublea,b,c,dlt,t;
printf("Pleaseenter3coefficientsa,b&c(R:)... ");
scanf("%lf%lf%lf",&a,&b,&c);//输入3个实数系数
if(a){//平方项系数不为0则按二次方程解
t=sqrt(sqrt((dlt=b*b-4*a*c)*dlt))/a/2,b=-b/a/2;//求√|dlt|/2a赋t和-b/2a赋b
if(dlt>0)//dlt>0时有双实根
printf("x1=%gx2=%g ",b+t,b-t);
elseif(dlt<0)//dlt<0时有双复根
printf("x1=%g+%gix2=%g-%gi ",b,t,b,t);
else//dlt=0时有单实根
printf("x1=x2=%g ",b);
}
elseif(!b)//a=0,b=0时无解(含无穷个解)
printf("Nosolution... ");
else//a=0,b!=0时有一次方程解
printf("x=%g ",-c/b);
return0;
}
试运行样例如下图:
3. C语言中求方程的根
如图:
4. C语言编程:求1元2次方程的根
#include
"stdio.h"
#include
"math.h"
void
main()
{
printf("求方程ax^2+bx+c=0的根:\n");
L:
printf("请分别输入a,b,c的值。\n");
double
a,b,c,x1,x2,x,y;
char
z;
printf("输入a,b,c=");
scanf("a=%lf,b=%lf,c=%lf\n,&a,&b,&c");
printf("你所输入的方程为%lfx^2+%lfx+%lf=0。\n",a,b,c);
M:
printf("是否正确?(是y\否n)\n");
scanf("%c",&z);
if
(z=='n')
goto
L;
else
if
(z=='y')
{
if
((b*b-4*a*c)>0)
x1=(-b+sqrt(b*b-4*a*c))/(2*a),
x2=(-b-sqrt(b*b-4*a*c))/(2*a),
printf("有两个不同的实根:\nx1=%lf\nx2=%lf\n",x1,x2),
printf("\n");
if
((b*b-4*a*c)==0)
x1=-b/(2*a),
printf("有两个相同的实根:\nx1=x2=%lf\n",x1),
printf("\n");
if
((b*b-4*a*c)<0)
x=-b/(2*a),
y=sqrt(4*a*c-b*b)/(2*a),
printf("有两表个不同的曾根:\nx1=%lf+%lfi\nx2=%lf-%lfi\n",x,y,x,y),
printf("\n");
goto
L
;
}
else
printf("请正确输入:\n");
goto
M;
}
5. C语言编程:求1元2次方程的根
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c; /*定义系数变量*/
double x1,x2,p; /*定义根变量和表达式的变量值*/
printf("请输入a,b,c:"); /*提示用户输入三个系数*/
scanf("%lf%lf%lf",&a,&b,&c); /*接收用户输入的系数*/
printf(" "); /*输出回行*/
p=b*b-4*a*c; /*给表达式赋值*/
x1=(-b+sqrt(p))/(2*a); /*根1的值*/
x2=(-b-sqrt(p))/(2*a); /*跟2的值*/
printf("x1=%f,x2=%f ",x1,x2); /*输出两个根的值*/
}
拓展资料
在实际的求法中,一般还需要判断有无实根,这是可以通过p的值来判断
6. C语言编程 二分法求方程的根
这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。
方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用eps=1e-5作为区间的极限大小,通过迭代的方法求解这个方程的数值解。
所以了解了上述思想,那么else
if(f(a)*f(c)<0)
b=c;
说明的是
f(a)和f(c)异号,那么使用b=(a+b)/2缩小迭代区间,继续迭代;同理else
a=c;说明f(a)和f(c)同号,那么使用a(a+b)/2缩小迭代区间,继续迭代!
7. 用C语言编写一程序求解一元二次方程的根。
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根为%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程无实数根\n");
}
main()
{
float a,b,c;
printf("请输入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}
8. 用C语言中,如何用调用函数编写求一元二次方程的根
int GetRoot(float a, float b, float c ,double* root){
double delta, deltasqrt ;
delta = b* b - 4*a*c ;
if(delta<0) 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 (n<1){
printf("方程无根") ;
}else{
printf("方程的解为:%f,%f",root[0],root[1]) ;
}
}
(8)编程求方程的根扩展阅读:
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语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
9. c语言编程,求方程的根,在线等,急
使用二分法求解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)上的解
#include<iostream.h>
#include<math.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<<"方程的解为: "<<temp<<endl;
}
else //无解的处理
cout<<"此方程在此区间上无解"<<endl;
}
//主函数入口
int main()
{
double min,max,temp;
cout<<"请输入积分下限: ";
cin>>min;
cout<<"请输入积分上限: ";
cin>>max;
if(min>max) //对于用户输入次序相反的处理
{
temp=max;
max=min;
min=temp;
}
solequ(min,max,eps);
return 0;
}
你参考下这个程序,二分法