作业帮 > 综合 > 作业

.求教,C语言,求ax^2+by+c=0的解

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/29 06:49:10
.求教,C语言,求ax^2+by+c=0的解
我的程序:#include "stdio.h"
#include "math.h"
void main()
{
int a,b,c;
float x1,x2,p;
printf("please enter a b c\n");
scanf("%f,%f,%f",&a,&b,&c);
p=pow(b,2)-4*a*c;
if(p>0)
{x1=(-b+sqrt(p))/(2*a);
x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);}
else if(p
你的错误:abc要声明为float类型.if分支语句写的比较混乱.我帮你修改的代码为:#include "stdio.h"
#include "math.h"
void main()
{
   float a,b,c;  //此处有改动
   float x1,x2,p;
   printf("please enter a b c\n");
   scanf("%f,%f,%f",&a,&b,&c);
   p=pow(b,2)-4*a*c;
   if (p>0)
   {
       x1=(-b+sqrt(p))/(2*a);
       x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);
   }
   else if (p<=1e-6 && p>=-1e-6) //此处有改动
   {
       x1=-b/(2*a);
       x2=-b/(2*a);
   }
   else //此处有改动
   {
       printf("this is error\n");
   }
   printf("%f,%f\n",x1,x2);
}
测试结果:

//谢谢采纳,希望对你有所帮助
再问: 谢谢,不过输入负数时仍然不行。是不是这种定义不能输入负数啊?如果要输入负数该怎么改,比如 输入:1,-2,1
再答: 这是负数的情况,还是好使的啊
再问: 可是我的输出是这样的。难道是软件问题?
再答: 输入的时候请将输入法切换到英文状态