关于求二次方程组的程序(VC新手问题)

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:07:25
我编写了一个求一元二次方程组的简单程序
如下:

#include <iostream>
#include"stdlib.h"
#include"math.h"
using namespace std;
float delta(float a,float b,float c);
int main()
{
float a,b,c,x1,x2,del;
cout<<"请输入a,b,c的值:";
cin>>a>>b>>c;
del=delta(a,b,c);
if(del<0)
cout<<"error";
else
{
x1=(-b+sqrt(del))/2*a;
x2=(-b-sqrt(del))/2*a;
cout<<a<<"x*x+"<<b<<"x+"<<c<<"=0的解是:"<<endl;
cout<<"x1="<<x1<<endl<<"x2="<<x2<<endl;
}
return 0;
}
float delta(float a,float b,float c)
{
float del;
del=b*b-4*a*c;
cout<<"del="<<del<<endl;
return del;
}

其中所有的参数都是定义的实数型(float)
但是为什么我输出的值总是整数型呢??

试了一下,并没有出现你说的情况,不行的话把程序里面用到的常数数值都改成小数,如x1=(-b+sqrt(del))/2.0*a;del=b*b-4.0*a*c;

程序运行:
请输入a,b,c的值:5.5 8.8 1.1
del=53.24
5.5x*x+8.8x+1.1=0的解是:
x1=-4.13442
x2=-44.2656

请输入a,b,c的值:2 5 1
del=17
2x*x+5x+1=0的解是:
x1=-0.876894
x2=-9.12311