首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

纳闷啊求解决~求解释

2013-08-09 
困惑啊~求解决~求解释基础题:编写函数,求1元2次方程ax^2+bx+c 0的实根 为什么我的求dalt那句不正常?#inc

困惑啊~求解决~求解释
基础题:编写函数,求1元2次方程ax^2+bx+c = 0的实根 为什么我的求dalt那句不正常?


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

int quadratic_equation(float a, float b, float c, float* x1 , float* x2)
{
float dalt = 0;
if(0 == a)
{
*x1 = *x2 =(-c)/b ;
return 1 ;
}
else
{
printf("dalt1:%lf",dalt);
dalt = b*b-4*a*c;
printf("dalt2:%lf",dalt);
if(dalt >= 0)
{
*x1 = ((-b)+sqrt(dalt))/(2*a);
*x2 = ((-b)-sqrt(dalt))/(2*a);
return 1;

else
{
return 0;
}
}
}

int main()
{
int flage = 0;
float x1 = 0;
float x2 = 0;

float a = 0;
float b = 0;
float c = 0;
printf("input a:");
scanf("%d",&a);
printf("input b:");
scanf("%d",&b);
printf("input c:");
scanf("%d",&c);

flage = quadratic_equation(a,b,c,&x1,&x2);
if( 1 == flage)
{
printf("x1=%.3f,x2=%.3f\n",x1,x2);
}
else
{
printf("no real root;\n");
}
return 0;


[解决办法]
我觉得可能出现问题的地方是:

        printf("input a:");
scanf("%f",&a);
printf("input b:");
scanf("%f",&b);
printf("input c:");
scanf("%f",&c);

你输入的是正整数。而你却将其转换成了float

热点排行
Bad Request.