C语言编程,求一元二次方程 ax2+bx+c=0 的解,谢谢

①系数a=0时,该方程不是二次方程。②判别式b2-4ac=0时,有两个相等实根。③判别式b2-4ac>0时,有两个不等实根。④判别式b2-4ac<0时,有两个共轭复根。请... ①系数a=0时,该方程不是二次方程。

②判别式b2-4ac=0时,有两个相等实根。

③判别式b2-4ac>0时,有两个不等实根。

④判别式b2-4ac<0时,有两个共轭复根。

请编程判断其根类型,并求出具体的解的值。(运用结构嵌套来实现)
展开
 我来答
问明6E
高粉答主

2019-06-24 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.6万
展开全部

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

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

{

double a,b,c,delta,p,q;

cin>>a>>b>>c;

delta=b*b-4*a*c;

p=-b/(2*a);

q=sqrt(fabs(delta))/(2*a);

if (delta>=0)

cout<<p+q<<endl<<p-q<<endl;

else

{

cout<<p<<"+j"<<q;

cout<<endl<<p<<"-j"<<q<<endl;

}

}

return 0;

}

扩展资料:

return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。

萌飞绿叶
2018-04-08 · TA获得超过181个赞
知道小有建树答主
回答量:132
采纳率:77%
帮助的人:39万
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c;
scanf("%lg%lg%lg", &a, &b, &c);
printf("原方程为:%g*x*x + %g*x + %g = 0\n", a, b, c);
if (a == 0)
{
if (b == 0)
{
if (c == 0)
{
printf("\nx可以为任意值");
}
else
{
printf("\nx无解");
}
}
else
{
printf("该方程不是二次方程\nx = %.2f\n", -1.0 * c / b);//一元一次方程
}
}
else
{
int N = b * b - 4 * a * c;
double X = -1.0 * b / 2 / a;
if (N == 0)
{
printf("该方程有2个相等实根\nx1 = %.2f, x2 = %.2f\n", X, X);
}
else if (N > 0)
{
double Y = sqrt(N) / 2.0 / a;
printf("该方程有2个不等实根\nx1 = %.2f, x2 = %.2f\n", X + Y, X - Y);
}
else
{
double Y = sqrt(-1.0 * N) / 2 / a;
printf("该方程有2个共轭复根\nx1 = %.2f+%.2fi, x2 = %.2f-%.2fi\n", X, Y, X, Y);
}
}
return 0;
}

运行示范

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DoramiHe
2018-04-08 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25334 获赞数:59537
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
C++源程序如下:

#include <iostream>
#include <math.h>
using namespace std;

void main()
{
float a, b, c, x1, x2;

cout << "请输入a, b, c的值:";
cin>> a >> b >> c;

if (b*b - 4*a*c <= 0)
cout << "输入的系数不对,b2-4ac不大于0!程序退出!" << endl;
else
{
x1 = (-b + sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - sqrt(b*b - 4*a*c))/2*a;

cout.precision(2);
cout << "x1 = " << fixed << x1 << endl;
cout << "x2 = " << fixed << x2 << endl;
}

}

C语言源程序如下:

#include <stdio.h>
#include <math.h>

void main()
{
float a, b, c, x1, x2;

printf("请输入a, b, c的值:");
scanf("%f%f%f", &a, &b, &c);

if (b*b - 4*a*c <= 0)
printf("输入的系数不对,b2-4ac不大于0!程序退出!\n");
else
{
x1 = (-b + sqrt(b*b - 4*a*c))/2*a;
x2 = (-b - sqrt(b*b - 4*a*c))/2*a;

printf("x1 = %.2f\n", x1);
printf("x2 = %.2f\n", x2);
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式