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时,有两个共轭复根。
请编程判断其根类型,并求出具体的解的值。(运用结构嵌套来实现) 展开
②判别式b2-4ac=0时,有两个相等实根。
③判别式b2-4ac>0时,有两个不等实根。
④判别式b2-4ac<0时,有两个共轭复根。
请编程判断其根类型,并求出具体的解的值。(运用结构嵌套来实现) 展开
3个回答
展开全部
#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,但这时即使写了也无法返回数值。
展开全部
#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;
}
运行示范
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-04-08 · 知道合伙人互联网行家
关注
展开全部
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);
}
}
#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);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询