步骤:
打开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语言编写一个求一元二次方程的实根的程序。、编程编写一个程序求一元二次方程的解、配方法解一元二次方程的一般步骤是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)