用C语言求方程的根,用3个函数分别求当大于0、等于0和小于0时的根并输出结果。从主函数中输入abc的值。
给你重写一个你对照看——
为宁县等地区用户提供了全套网页设计制作服务,及宁县网站建设行业解决方案。主营业务为网站制作、成都网站制作、宁县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#include "stdio.h"
#include "math.h"
void zero(float a,float b){
printf("x1 = %f\n",-b/2/a);
printf("x2 = %f\n",-b/2/a);
}
void one(float a,float b,float d){
printf("x1 = %f\n",(-b+d)/2/a);
printf("x2 = %f\n",(-b-d)/2/a);
}
void two(float a,float b,float d){
printf("x1 = %f%+fi\n",-b/2/a,d/2/a);
printf("x2 = %f%+fi\n",-b/2/a,-d/2/a);
}
int main(int argc,char *argv[]){
float a,b,c,dlt;
printf("Input a, b, c(R: all)...\n");
scanf("%f%f%f",a,b,c);
if((dlt=b*b-4*a*c)==0)
zero(a,b);
else if(dlt0){
one(a,b,sqrt(dlt));
}
else
two(a,b,sqrt(-dlt));
return 0;
}
运行样例:
有问题续问。
C语言 方程求根 用三个函数分别输出 abc的值从主函数输入
1.
楼主的x()和y()写的一样啊。
2.在x()和y()中的定义
int
x1,x2;应该改为
double
x1,x2;
3.
楼主对b*b-4*a*c0如何处理?
4.scanf("%lf,%lf,%lf",a,b,c);最好改为scanf("%lf%lf%lf",a,b,c);
建议改为下列,对于b*b-4*a*c0的情况输出提示
#includestdio.h
#includemath.h
float
d;
int
main()
{
void
x(double
x,double
y,double
z);
void
y(double
x,double
y,double
z);
double
a,b,c;
scanf("%lf%lf%lf",a,b,c);
d=b*b-4*a*c;
if(d1e-6)
x(a,b,c);
else
if(d0)
printf("没有实根\n");
else
y(a,b,c);
}
void
x(double
x,double
y,double
z)
{
double
x1,x2;
x1=(-y+sqrt(d))/(2*x);
x2=(-y-sqrt(d))/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
void
y(double
x,double
y,double
z)
{
double
x1,x2;
x1=x2=-y/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
C语言 方程求根 用三个函数分别输出 abc的值从主函数输入
1. 楼主的x()和y()写的一样啊。
2.在x()和y()中的定义 int x1,x2;应该改为 double x1,x2;
3. 楼主对b*b-4*a*c0如何处理?
4.scanf("%lf,%lf,%lf",a,b,c);最好改为scanf("%lf%lf%lf",a,b,c);
建议改为下列,对于b*b-4*a*c0的情况输出提示
#includestdio.h
#includemath.h
float d;
int main()
{ void x(double x,double y,double z);
void y(double x,double y,double z);
double a,b,c;
scanf("%lf%lf%lf",a,b,c);
d=b*b-4*a*c;
if(d1e-6)
x(a,b,c);
else if(d0)
printf("没有实根\n");
else
y(a,b,c);
}
void x(double x,double y,double z)
{
double x1,x2;
x1=(-y+sqrt(d))/(2*x);
x2=(-y-sqrt(d))/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
void y(double x,double y,double z)
{
double x1,x2;
x1=x2=-y/(2*x);
printf("%8.4f,%8.4f",x1,x2);
}
网站题目:c语言求根用三个函数 c语音求根
新闻来源:http://lswzjz.com/article/ddjohch.html