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);
}
c语言一元二次方程求解(包含复根)
编写函数root(double a,double b,double c)和main(),在主函数中输入一元二次方程的系数x,y,z,然后调用root函数求解此方程的根(实根和复根)并输出。
代码:
#include <stdio.h>
#include <math.h>
void root(double a,double b,double c);
void main(){
double x,y,z;
printf("请输入一元二次方程x-y-z的值:");
scanf("%lf,%lf,%lf",&x,&y,&z);
root(x,y,z);
}
void root(double a,double b,double c){
double p,x1,x2;
p=b*b-4*a*c;
if(p>0){
x1=(-b+sqrt(p))/(2*a);
x2=(-b-sqrt(p))/(2*a);
printf("方程有两个不同的实根:x1=%.2lf,x2=%.2lf\n",x1,x2);
}
else if(p==0){
x1=(-b)/(2*a);
printf("方程有两个相同的实根:x1=x2=%.2lf\n",x1);
}else{
x1=(-b)/(2*a);
x2=sqrt(fabs(p))/(2*a);
printf("方程有两个不同的虚根:x1=%.2lf+%.2lfi,x2=%.2lf-%.2lfi\n",x1,x2,x1,x2);
}
}
测试1:
测试2:
测试3: