#include
#include
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<
else
{
cout<
cout< } } return 0; } return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。 如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。扩展资料:
#include
#include
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;
}
运行示范
C++源程序如下:
#include
#include
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
#include
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);
}
}