c++输入a、b、c,求一元二次方程ax2+bx+c=0的解
时间: 2024-12-08 17:19:02 浏览: 23
这是一个c++程序,可以通过输入a、b、c的值来求解一元二次方程ax^2+bx+c=0的解。程序中使用了求根公式,当delta=b^2-4ac>0时,方程有两个实数根;当delta=0时,方程有一个实数根;当delta<0时,方程无实数根。程序的输出结果为方程的解。下面是程序的代码:
```
# include <iostream>
# include <cmath>
using namespace std;
int main(){
int a,b,c;
float delta,x1,x2;
cout<<"请输入a、b、c的值:";
cin>>a>>b>>c;
delta=b*b-4*a*c;
if(delta>0){
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
cout<<"方程的两个实数根分别为:"<<x1<<"和"<<x2<<endl; }
else if(delta==0){
x1=-b/(2*a);
cout<<"方程的唯一实数根为:"<<x1<<endl;
}
else{
cout<<"方程无实数根"<<endl;
}
return 0;
}
```
相关问题
求一元二次方程ax2+bx+c=0的根,其中a、b、c为任意实数。 提示(Hint):使用系统函数 sqrt(double x)求平方根,使用前需添加语句:#include <math.h>
解一元二次方程 ax^2 + bx + c = 0 的一般方法是使用公式法,也称为韦达定理(Vieta's formulas),该定理表明如果两个根为 α 和 β,则有以下关系:
α + β = -b / a (第一个根与第二个根之和)
α * β = c / a (两个根的乘积)
在编程中,特别是 C/C++ 中,可以编写一个函数来计算这两个根。首先,需要验证判别式 b^2 - 4ac 是否大于等于零,因为如果判别式小于零,那么原方程无实根。以下是示例代码:
```cpp
#include <iostream>
#include <cmath>
// 函数来计算一元二次方程的根
void quadraticRoots(double a, double b, double c) {
// 判别式
double discriminant = b * b - 4 * a * c;
if (discriminant >= 0) {
double root1 = (-b + std::sqrt(discriminant)) / (2 * a);
double root2 = (-b - std::sqrt(discriminant)) / (2 * a);
std::cout << "根1: " << root1 << "\n";
std::cout << "根2: " << root2 << "\n";
} else {
std::cout << "方程无实根.\n";
}
}
int main() {
double a, b, c;
std::cout << "请输入一元二次方程的系数 a, b, c: ";
std::cin >> a >> b >> c;
quadraticRoots(a, b, c);
return 0;
}
```
当你运行这个程序并输入方程的系数时,它会计算并显示根,如果有实根的话。
求方程ax^2+bx+c=0的根,用c++程序写一代码,要求能求方程ax^2+bx+c=0的根,设b^2-4ac>=0,其中a,b,c的值由键盘输入
好的,我可以为您提供程序代码来解决这个问题。以下是使用C语言编写的代码:
```
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, x1, x2, discriminant;
// 获取输入值
printf("请输入 a, b, c 的值:\n");
scanf("%f %f %f", &a, &b, &c);
// 计算判别式
discriminant = b * b - 4 * a * c;
// 判断方程根的情况
if (discriminant > 0) {
x1 = (-b + sqrt(discriminant)) / (2 * a);
x2 = (-b - sqrt(discriminant)) / (2 * a);
printf("该方程有两个不相等的实根:x1 = %f, x2 = %f\n", x1, x2);
} else if (discriminant == 0) {
x1 = -b / (2 * a);
printf("该方程有一个实根:x1 = %f\n", x1);
} else {
printf("该方程没有实根\n");
}
return 0;
}
```
请将上述程序保存为.c文件,然后使用一个C编译器编译并运行它。在运行时,程序将提示您输入方程的系数a、b和c的值。一旦您输入这些值,程序将计算方程的根并打印它们的值。请注意,程序只处理判别式大于或等于0的情况。
阅读全文