
编程计算二元一次方程的根
谁帮我看看哪里错了?分不多了,见谅。#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,x1,x2;print...
谁帮我看看哪里错了?分不多了,见谅。
#include <stdio.h>
#include <math.h>
void main ()
{
double a, b, c, x1, x2;
printf("Please input three numbers:");
scanf("%f, %f, %f\n", &a, &b, &c);
if (a==0)
{
printf("非二次方程,是一次方程!\n");
if (b==0)
{
if (c==0)
printf("无穷个解!\n");
else
printf("无解!\n");
}
else
printf("x1=x2=%f\n", x1=x2=-c/b);
}
else
{
if (b*b-4*a*c==0)
printf("x1=x2=%f\n", x1=x2=-b/(2*a));
if (b*b-4*a*c>0)
printf("有两个不同解!\n");
printf("x1=%f, x2=%f\n", x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a));
if (b*b-4*a*c<0)
printf("无根!\n");
}
}
还是只出现无根 ,输什么都是无根。。。。。。 展开
#include <stdio.h>
#include <math.h>
void main ()
{
double a, b, c, x1, x2;
printf("Please input three numbers:");
scanf("%f, %f, %f\n", &a, &b, &c);
if (a==0)
{
printf("非二次方程,是一次方程!\n");
if (b==0)
{
if (c==0)
printf("无穷个解!\n");
else
printf("无解!\n");
}
else
printf("x1=x2=%f\n", x1=x2=-c/b);
}
else
{
if (b*b-4*a*c==0)
printf("x1=x2=%f\n", x1=x2=-b/(2*a));
if (b*b-4*a*c>0)
printf("有两个不同解!\n");
printf("x1=%f, x2=%f\n", x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a));
if (b*b-4*a*c<0)
printf("无根!\n");
}
}
还是只出现无根 ,输什么都是无根。。。。。。 展开
3个回答
展开全部
#include <stdio.h>
#include <math.h>
void main ()
{
double a, b, c, x1, x2;
printf("Please input three numbers:");
scanf("%f, %f, %f\n", &a, &b, &c);
if (fabs(a)<0.000001)
{
printf("非二次方程,是一次方程!\n");
if (fabs(b) <0.00001)
{
if (fabs(c)<0.00001)
printf("无穷个解!\n");
else
printf("无解!\n");
}
else
printf("x1=x2=%f\n", x1=x2=-c/b);
}
else
{
if ((b*b-4*a*c)==0)
printf("x1=x2=%f\n", x1=x2=-b/(2*a));
if ((b*b-4*a*c)>0)
printf("有两个不同解!\n");
printf("x1=%f, x2=%f\n", x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a));
if (b*b-4*a*c<0)
printf("无根!\n");
}
}
#include <math.h>
void main ()
{
double a, b, c, x1, x2;
printf("Please input three numbers:");
scanf("%f, %f, %f\n", &a, &b, &c);
if (fabs(a)<0.000001)
{
printf("非二次方程,是一次方程!\n");
if (fabs(b) <0.00001)
{
if (fabs(c)<0.00001)
printf("无穷个解!\n");
else
printf("无解!\n");
}
else
printf("x1=x2=%f\n", x1=x2=-c/b);
}
else
{
if ((b*b-4*a*c)==0)
printf("x1=x2=%f\n", x1=x2=-b/(2*a));
if ((b*b-4*a*c)>0)
printf("有两个不同解!\n");
printf("x1=%f, x2=%f\n", x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a));
if (b*b-4*a*c<0)
printf("无根!\n");
}
}
更多追问追答
追问
还是只出现无根 ,输什么都是无根。。。。。。
追答
else
{
if (fabs(b*b-4*a*c)0.0001)
printf("有两个不同解!\n");
printf("x1=%f, x2=%f\n", x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a));
if (fabs(b*b-4*a*c)<0.0001)
printf("无根!\n");
}
浮点数不能直接比较
本回答被提问者和网友采纳
展开全部
倒数第二个if语句。这个if后面两个printf都是归附于他的。所以要用花括号括起来。不加括号只默认if后第一句语句归附于他
追问
还是只出现无根 ,输什么都是无根。。。。。。
追答
sacnf中的\n要去掉。。。然后你输入的时候参数之间要有逗号哦。。。估计是你没加逗号
展开全部
是不是你输入参数的问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |