写出用C++求解一元二次方程的代码,包括求解方程根的成员函数和输出结果的成员函数,要求加入构造函数,使用默认参数的方法
时间: 2024-05-14 14:16:55 浏览: 223
好的,下面是使用 C 语言编写的一元二次方程求解代码,包括求解方程根的函数和输出结果的函数,并加入构造函数和默认参数:
```C
#include <stdio.h>
#include <math.h>
typedef struct{
float a, b, c;
}QuadraticEquation;
void initEquation(QuadraticEquation *e) {
e->a = 0;
e->b = 0;
e->c = 0;
}
void inputEquation(QuadraticEquation *e) {
printf("Please enter the coefficients (a, b, c) of the quadratic equation:\n");
scanf("%f%f%f", &e->a, &e->b, &e->c);
}
void solveEquation(QuadraticEquation e, float *x1, float *x2) {
float delta = e.b * e.b - 4 * e.a * e.c;
if(delta >= 0) {
*x1 = (-e.b + sqrt(delta)) / (2 * e.a);
*x2 = (-e.b - sqrt(delta)) / (2 * e.a);
}
else {
*x1 = *x2 = -e.b / (2 * e.a);
}
}
void outputEquation(QuadraticEquation e, float x1, float x2) {
printf("The quadratic equation %fx^2 + %fx + %f has roots:\n", e.a, e.b, e.c);
printf("x1 = %f\n", x1);
printf("x2 = %f\n", x2);
}
int main() {
QuadraticEquation e;
initEquation(&e);
inputEquation(&e);
float x1, x2;
solveEquation(e, &x1, &x2);
outputEquation(e, x1, x2);
return 0;
}
```
这是一个基本的一元二次方程求解代码,提供了按照默认参数构造类的方法。其中,initEquation()函数用于初始化一元二次方程的系数,inputEquation()函数用于输入方程的系数,solveEquation()函数用于求解一元二次方程的根,outputEquation()函数用于输出方程的根。
注意:这只是一个简单的求一元二次方程根的代码,实际应用中还需要对输入参数的合法性进行判断,例如方程项系数不能为零,方程必须是一元二次方程等。
阅读全文