C语言编程题代码咋写

题目描述求方程的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。输入abc输出x1=?x2=?样例输入411样... 题目描述求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 输入a b c输出x1=? x2=?样例输入4 1 1样例输出x1=-0.125+0.484i x2=-0.125-0.484i 展开
 我来答
愿闻祺祥
2012-12-11 · TA获得超过1135个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:361万
展开全部
#include <stdio.h>
#include <math.h>
void two(float a,float b,float c){
float x1=(-b+sqrt(b*b-4*a*c))/(2*a);
float x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%.3f x2=%.3f\n",x1,x2);
}
void one(float a,float b,float c){
float x=-b/(2*a);
printf("x1=x2=%.3f\n",x);
}
void zore(float a,float b,float c){
float x=-b/(2*a);
float i1=sqrt(4*a*c-b*b)/(2*a);
float i2=-sqrt(4*a*c-b*b)/(2*a);
printf("x1=%.3f+%.3fi x2=%.3f%.3fi\n",x,i1,x,i2);
}
void main(){
float a,b,c;
scanf("%f %f %f",&a,&b,&c);
int s = b*b-4*a*c;
if (s>0)
two(a,b,c);
else if(s==0)
one(a,b,c);
else
zore(a,b,c);
}
cpucash
2012-12-12 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:955万
展开全部
定义
int a,b,c;
float p,x1,x2;

输入abc
scanf("%d %d %d",&a,&b,&c);
判断a是否为零
if(a==0)
if(b==0)
无解
else
printf("x=%f",-1.0*c/b);
else
{
p=b*b-4*a*c;
if(p>0)
printf("x1=%f\nx2=%f",(-b+sqrt(p))/(2*a),(-b-sqrt(p))/(2*a));
else if(p==0)
printf("x=%f",-1.0*b/(2*a));
else
printf("x1=%f+%fi\nx2=%f-%fi",-1.0*b/(2*a),sqrt(-p)/(2*a),-1.0*b/(2*a),sqrt(-p)/(2*a));

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhs490770
2012-12-12 · TA获得超过229个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:269万
展开全部
当b=0时,楼上几位的虚根显示可能有问题哦
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,delta,x1,x2,x1b,x2b;
scanf("%f%f%f",&a,&b,&c);
delta=b*b-4*a*c;
if (delta==0) //一个实数根
{
x1=-b/(2*a);
printf("x=%.3f",x1);
}
else if (delta>0) //两个实数根
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("x1=%.3f,x2=%.3f",x1,x2);
}
else if (delta<0) //两个虚数根
{
x1=-b/(2*a);
x1b=sqrt(-delta)/(2*a);
if (x1==0) printf("x1=%.3fi,x2=-%.3fi",x1b,x1b); //防止实部出现0的特殊输出情况
else
{
printf("x1=%.3f+%.3fi,",x1,x1b);
printf("x2=%.3f-%.3fi",x1,x1b);
}
}
printf("\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
testingrookie
2012-12-11 · 超过24用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:52.5万
展开全部
已知方程为2*a*xe2+b*x+c=0
void root1(){
float a,b,c,x1,x2;
x1=((0-b)+Sqr(b^2-4*a*c))/(2*a)
x2=((0-b)-Sqr(b²-4*a*c))/(2*a)
printf("x1=%f,x2=%f",x1,x2);
}
void root2(){
float a,b,c,x1,x2;
x1=x2;
x1=(0-b)/2*a
printf("x1=%f,x2=%f",x1,x2)
}
void root3(){

printf("no root")
}
void main(){
float d,a,b,c,x1,x2;
scanf("%f%f%f",a,b,c);
d=Sqr(b^2-4*a*c)
if(d=0) {root2();}
else{
if(d>0) {root1(); }
else root3();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-11
展开全部
不知道,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式