修改c语言程序
求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。#include<stdio.h>#i...
求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。
#include<stdio.h>
#include<math.h>
main()
{ float a,b,c,d;
printf(“请输入方城系数a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
d=b*b-4*a*c;
if(d>1e-6)
f1(a,b,c);
else if(fabs(d)<1e-6)
f2(a,b,c);
else
f3(a,b,c);
}
void f1(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(“x1=%f x2=%f\n”,x1,x2);}
void f2(float a, float b, float c)
{ float x;
x=(-b))/(2*a);
printf(“x1=x2=%f\n”,x);}
void f3(float a, float b, float c)
{ float p,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
printf(“x1=%f+%fi x2=%f-%fi\n”,p,q,p,q);}
运行不出?怎么修改 展开
#include<stdio.h>
#include<math.h>
main()
{ float a,b,c,d;
printf(“请输入方城系数a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
d=b*b-4*a*c;
if(d>1e-6)
f1(a,b,c);
else if(fabs(d)<1e-6)
f2(a,b,c);
else
f3(a,b,c);
}
void f1(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(“x1=%f x2=%f\n”,x1,x2);}
void f2(float a, float b, float c)
{ float x;
x=(-b))/(2*a);
printf(“x1=x2=%f\n”,x);}
void f3(float a, float b, float c)
{ float p,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
printf(“x1=%f+%fi x2=%f-%fi\n”,p,q,p,q);}
运行不出?怎么修改 展开
3个回答
展开全部
在main()函数调用f1,f2,f3之前把函数声明下就好了。加上如下3句OK。
void f1(float a, float b, float c);
void f2(float a, float b, float c);
void f3(float a, float b, float c);
x=(-b)/(2*a);//多打了个括号。
void f1(float a, float b, float c);
void f2(float a, float b, float c);
void f3(float a, float b, float c);
x=(-b)/(2*a);//多打了个括号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误主要在于
1.缺少函数声明,f1,f2,f3函数在主函数后必须有声明啊
2.应使用英文状态下的双引号
3.括号匹配错误
#include<stdio.h>
#include<math.h>
void f1(float,float,float);
void f2(float,float,float);
void f3(float,float,float);
main()
{
float a,b,c,d;
printf("请输入方城系数a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>1e-6)
f1(a,b,c);
else if(fabs(d)<1e-6)
f2(a,b,c);
else
f3(a,b,c);
}
void f1(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("x1=%f x2=%f\n",x1,x2);
}
void f2(float a, float b, float c)
{
float x;
x=(-b)/(2*a);
printf("x1=x2=%f\n",x);
}
void f3(float a, float b, float c)
{
float p,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
printf("x1=%f+%fi x2=%f-%fi\n",p,q,p,q);
}
1.缺少函数声明,f1,f2,f3函数在主函数后必须有声明啊
2.应使用英文状态下的双引号
3.括号匹配错误
#include<stdio.h>
#include<math.h>
void f1(float,float,float);
void f2(float,float,float);
void f3(float,float,float);
main()
{
float a,b,c,d;
printf("请输入方城系数a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(d>1e-6)
f1(a,b,c);
else if(fabs(d)<1e-6)
f2(a,b,c);
else
f3(a,b,c);
}
void f1(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("x1=%f x2=%f\n",x1,x2);
}
void f2(float a, float b, float c)
{
float x;
x=(-b)/(2*a);
printf("x1=x2=%f\n",x);
}
void f3(float a, float b, float c)
{
float p,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
printf("x1=%f+%fi x2=%f-%fi\n",p,q,p,q);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询