C语言编写一个求一元二次方程的实根的程序。

C语言编写一个求一元二次方程的实根的程序。,第1张

步骤:

打开visual C++ 60-文件-新建-文件-C++ Source File

2

定义变量:

#include <stdioh>

#include <mathh>

void main()

{

double a,b,c;                                /定义系数变量/

double x1,x2,p;                              /定义根变量和表达式的变量值/

3输入系数:

printf("请输入a,b,c:");                      /提示用户输入三个系数/

scanf("%lf%lf%lf",&a,&b,&c);                 /接收用户输入的系数/

4输出回车:

printf("\n");                               /输出回行/

5

计算根:

p=bb-4ac;                            /给表达式赋值/

x1=(-b+sqrt(p))/(2a);                           /根1的值/

x2=(-b-sqrt(p))/(2a);                           /跟2的值/

6

输出结果:

printf("x1=%f,x2=%f\n",x1,x2);                   /输出两个根的值/

完整的源代码:

#include <stdioh>

#include <mathh>

void main()

{

double a,b,c;                                /定义系数变量/

double x1,x2,p;                              /定义根变量和表达式的变量值/

printf("请输入a,b,c:");                      /提示用户输入三个系数/

scanf("%lf%lf%lf",&a,&b,&c);                 /接收用户输入的系数/

printf("\n");                               /输出回行/

p=bb-4ac;                            /给表达式赋值/

x1=(-b+sqrt(p))/(2a);                           /根1的值/

x2=(-b-sqrt(p))/(2a);                           /跟2的值/

printf("x1=%f,x2=%f\n",x1,x2);                   /输出两个根的值/

}

第二题:

#include<iostreamh>

void main()

{

int i,g,s,b;

for(i=100;i<1000;i++)

{

g=i%100;

b=i/100; //百位数

s=g/10; //十位数

g=g%10; //个位数

if(gg+ss+bb==99)

cout<<i<<endl;

}

}

第三题:

#include <iostream>

using namespace std;

int main()

{

int i,j,maxi,maxj,mini,minj,max,min;

int a[2][3];

cout<<"请输入6个整数作为矩阵元素"<<endl;

for(i=0;i<=1;i++)

{

for(j=0;j<=2;j++)

cin>>a[i][j];

};

maxi=maxj=mini=minj=0;

max=a[maxi][maxj];min=a[mini][minj];

for(i=0;i<=1;i++)

{

for(j=0;j<=2;j++)

if(max<a[i][j])

{

max=a[i][j];

maxi=i;maxj=j;

};

}

for(i=0;i<=1;i++)

{

for(j=0;j<=2;j++)

if(min>a[i][j])

{

min=a[i][j];

mini=i;minj=j;

}

}

cout<<"矩阵中最大值为"<<max<<"\n"<<"其位置位于a["<<maxi<<"]["<<maxj<<"]"<<endl;

cout<<"矩阵中最小值为"<<min<<"\n"<<"其位置位于a["<<mini<<"]["<<minj<<"]"<<endl;

return 0;

}

第四题:

#include<stdioh>

viod main()

{

int sum=0,a[3][3];

printf("输入数据:\n");

for(int i=0;i<3;i++)

for(int j=0;j<3;j++)

{

printf("a[%d][%d]=",i,j);

scanf("%d",&a[i][j]);

}

printf("\n");

for(int i=0;i<3;i++)

for(int j=0;j<3;j++)

sum+=a[i][j];

printf("%d\n",sum);

}

第五题:

#include <iostream> using namespace std; double a(int m) { double n=1; for (int i=1;i<=m;i++) n=ni; return n; } int main() { int t; double y=1; for(t=1;(10/a(t))>=1e-6;t++) { if(t%2==0) y=y-(10/a(t)); else y=y+(10/a(t)); } cout<<"y=1+1/1!-1/2!+1/3!-1/4!+="<<y<<endl; return 0; }

用配方法解一元二次方程的步骤:

①把原方程化为一般形式;

②方程两边同除以二次项系数,使二次项系数为1,并把常数项移到方程右边;

③方程两边同时加上一次项系数一半的平方;

④把左边配成一个完全平方式,右边化为一个常数;

⑤进一步通过直接开平方法求出方程的解,如果右边是非负数,则方程有两个实根;如果右边是一个负数,则方程有一对共轭虚根。

扩展资料:

配方法的其他运用:求最值。示例说明如下:

已知实数x,y满足x²+3x+y-3=0,则x+y的最大值为____。

分析:将y用含x的式子来表示,再代入(x+y)求值。

解:x²+3x+y-3=0<=>y=3-3x-x²。

代入(x+y)得x+y=3-2x-x²=-(x²+2x-3)=-[(x+1)²-4]=4-(x+1)²。

由于(x+1)²≥0,故4-(x+1)²≤4故推测(x+y)的最大值为4,此时x,y有解,故(x+y)的最大值为4。

参考资料:

百度百科-一元二次方程

C++的代码:

#include <iostreamh>

#include <mathh>

void main(void)

{

double a,b,c,d;

char ch('y');

do{

cout<<"请依次输入二次方程ax^2+bx+c=0的系数(a不等于0):"<<endl;

cin>>a>>b>>c;

if(-00001<a<00001) //浮点数不宜直接判断相等

{cout<<"不是二次方程"<<endl;continue;}

d=bb-4ac;

if(d==0)cout<<"方程有两个相等实根:"<<-b/(2a)<<endl;

else if(d<0)cout<<"方程有两个不相等复根:"<<-b/(2a)<<"+i"<<sqrt(-d)/(2a)<<' '<<-b/(2a)<<"-i"<<sqrt(-d)/(2a)<<endl;

else cout<<"方程有两个不相等实根:"<<-b/(2a)+sqrt(d)/(2a)<<' '<<-b/(2a)+sqrt(d)/(2a)<<endl;

cout<<"继续?(y/n):";cin>>ch;

}while(ch=='y'||ch=='Y');

}

这个只能计算已经化简成aX^2+bX+c=0的一元二次方程

int fun(double a,double b,double c,double x1,double x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值

{

    double p=bb-4ac;//计算Δ

    if (p<0)

    {

        return 0;//方程无解,返回0

    }

    p=√p//求Δ的平方根

    x1=……//用求根公式计算X1

    x2=……//用求根公式计算X2

    return 1;//方程有解,返回1

}

就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<mathh>。

以上就是关于C语言编写一个求一元二次方程的实根的程序。全部的内容,包括:C语言编写一个求一元二次方程的实根的程序。、编程编写一个程序求一元二次方程的解、配方法解一元二次方程的一般步骤是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9274973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存