编程求方程ax2+bx+c=0的根,分别求当b2-4ac大于0、等于0和小于0时的根从主函数输入a、b、c的值并输出结果。

 我来答
侍茹桖0fJ
2010-04-22 · TA获得超过4515个赞
知道小有建树答主
回答量:2041
采纳率:0%
帮助的人:1273万
展开全部
#include<stdio.h>
#include<math.h>

void main()
{
void big(float a,float b,float c);
void equality(float a,float b,float c);
void small(float a,float b,float c);
float a,b,c,d;
printf("请输入三个数用,隔开:");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0) big(a,b,c);
if(d==0) equality(a,b,c);
if(d<0) small(a,b,c);
}
void big(float a,float b,float c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根:%f或%f\n",x1,x2);
}
void equality(float a,float b,float c)
{
float x;
x=-b/(2*a);
printf("方程的根:%f\n",x);
}
void small(float a,float b,float c)
{
printf("无解\n");
}
/yl平行线 回答采纳率:24.1% 2008-12-03 18:58 检举
您觉得这个答案好不好?

好(0)不好(0) 其他答案

10 input "输入方程的系数a,b,c=o";a,b,c
if a=0 then "一元二次方程的系数a不能为0”:goto 10
y=b*b-4*a*c
if y>=0 then
PRINT "x1=";(-b+sqr(y))/(2*a),"x2=";(-b-sqr(y))/(2*a)
else
PRINT "此一元二次方程无实数解"
end
百度网友be6b8e4
2013-06-15
知道答主
回答量:2
采纳率:0%
帮助的人:3168
展开全部
#include<stdio.h>
#include<math.h>
void f1(double a[3],double *p,double *q);
void f2(double a[3],double *p,double *q);
void f3(double a[3],double *p,double *q);
void main()
{
double a[3],d,m,n,*p=&m,*q=&n;
printf("请输入a的值:");
scanf("%lf",&a[0]);
printf("\n请输入b的值:");
scanf("%lf",&a[1]);
printf("\n请输入c的值:");
scanf("%lf",&a[2]);
d=a[1]*a[1]-4*a[0]*a[2];
if(d==0){f1(a,p,q);printf("两个相等的实根:x1=%.4lf\nx2=%.4lf\n",m,n);}
else if(d>0){f2(a,p,q);printf("两个不相等的实根:x1=%.4lf\nx2=%.4lf\n",m,n);}
else if(d<0){f3(a,p,q);printf("两个虚根:x1=%.4lf+%.4lfi\nx2=%.4lf-%.4lfi\n",m,n,m,n);}
}
void f1(double a[3],double *p,double *q)
{
*p=-a[1]/(2*a[0]);*q=-a[1]/(2*a[0]);
}
void f2(double a[3],double *p,double *q)
{
*p=(-a[1]+sqrt(a[1]*a[1]-4*a[0]*a[2]))/(2*a[0]);
*q=(-a[1]-sqrt(a[1]*a[1]-4*a[0]*a[2]))/(2*a[0]);
}
void f3(double a[3],double *p,double *q)
{
*p=-a[1]/(2*a[0]);
*q=sqrt(4*a[0]*a[2]-a[1]*a[1]);
}
这个应该符合要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随风零落飘摇
2012-05-09
知道答主
回答量:6
采纳率:0%
帮助的人:4.2万
展开全部
#include<stdio.h>
#include<math.h>

void main()
{
void big(float a,float b,float c);
void equality(float a,float b,float c);
void small(float a,float b,float c);
float a,b,c,d;
printf("请输入三个数用,隔开:");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0) big(a,b,c);
if(d==0) equality(a,b,c);
if(d<0) small(a,b,c);
}
void big(float a,float b,float c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根:%f或%f\n",x1,x2);
}
void equality(float a,float b,float c)
{
float x;
x=-b/(2*a);
printf("方程的根:%f\n",x);
}
void small(float a,float b,float c)
{
printf("无解\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式