
用c语言调用函数写个程序,求方程ax*x+bx+c=0的根,要求用3个函数分别求当b*b-4ac大于零、等于零 求大神
3个回答
展开全部
这是我初学C时写的题,翻出来给你看看,三个函数无非就是你分三种情况,你自己加个if就好了,我这题是默认有两个不相同的解,不想改了,应该能看懂,不懂你问我
sqrt函数是math.h中提供的,是开根的意思
a,b,c是输入的
Description
编程计算并输出一元二次方程ax^2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b^2-4ac>0)。
Input
输入三个实数,以空格隔开。
Output
按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐
Sample Input
2 6 1
Sample Output
-0.18 -2.82
HINT
注意%m.nf的作用
#include<stdio.h>
#include<math.h>
int
main()
{
//x1,x2是结果
double a,b,c,x1,x2;
scanf("%lf %lf %lf",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
if(x1>x2)
{
printf("%7.2lf%7.2lf\n",x1,x2);
}
if(x1<x2)
{
printf("%7.2lf%7.2f\n",x2,x1);
}
return 0;
}
sqrt函数是math.h中提供的,是开根的意思
a,b,c是输入的
Description
编程计算并输出一元二次方程ax^2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b^2-4ac>0)。
Input
输入三个实数,以空格隔开。
Output
按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐
Sample Input
2 6 1
Sample Output
-0.18 -2.82
HINT
注意%m.nf的作用
#include<stdio.h>
#include<math.h>
int
main()
{
//x1,x2是结果
double a,b,c,x1,x2;
scanf("%lf %lf %lf",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
if(x1>x2)
{
printf("%7.2lf%7.2lf\n",x1,x2);
}
if(x1<x2)
{
printf("%7.2lf%7.2f\n",x2,x1);
}
return 0;
}
展开全部
#include <stdio.h>
#include<math.h>
int e(int a,int b,int c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4.0*a*c))/(2.0*a);
x2=(-b-sqrt(b*b-4.0*a*c))/(2.0*a);
printf("x1=%.3f x2=%.3f",x1,x2);
}
int f(int a,int b,int c)
{
float x1=(-b+sqrt(b*b-4.0*a*c))/(2.0*a);
printf("x1=%.3f x2=%.3f",x1,x1);
}
int g(int a,int b,int c)
{
float x1,x2;
x1=-b/(2.0*a);
x2=sqrt(-(b*b-4.0*a*c))/(2.0*a);
printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",x1,x2,x1,x2);
}
int main()
{
int a,b,c;
while((scanf("%d%d%d",&a,&b,&c))!=EOF)
{
if(b*b-4*a*c>0)
e(a,b,c);
else if((b*b-4*a*c)==0)
f(a,b,c);
else g(a,b,c);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<math.h>
float fun1(float disc)
{
if (disc < 0)
printf("方程无解!");
return 0;
}
float fun2(float disc, float a, float b)
{
float p, q, x1, x2;
p = -b / (2 * a);
q = sqrt(disc) / (2 * a);
x1 = p q;
x2 = p - q;
printf("x1=%f\nx2=%f", x1, x2);
return 0;
}
float fun3(float a, float b)
{
float p;
p = -b / (2 * a);
printf("x1=x2=%f", p);
return 0;
}
int main()
{
float a, b, c, k, l, disc;
printf("输入二次函数的a,b和c:");
scanf("%f%f%f", &a, &b, &c);
k = b * b;
l = 4 * a * c;
disc = k - l;
if (disc < 0)
fun1(disc);
if (disc > 0)
fun2(disc, a, b);
if (disc == 0)
fun3(a, b);
return 0;
}
祝你愉快!
#include<math.h>
float fun1(float disc)
{
if (disc < 0)
printf("方程无解!");
return 0;
}
float fun2(float disc, float a, float b)
{
float p, q, x1, x2;
p = -b / (2 * a);
q = sqrt(disc) / (2 * a);
x1 = p q;
x2 = p - q;
printf("x1=%f\nx2=%f", x1, x2);
return 0;
}
float fun3(float a, float b)
{
float p;
p = -b / (2 * a);
printf("x1=x2=%f", p);
return 0;
}
int main()
{
float a, b, c, k, l, disc;
printf("输入二次函数的a,b和c:");
scanf("%f%f%f", &a, &b, &c);
k = b * b;
l = 4 * a * c;
disc = k - l;
if (disc < 0)
fun1(disc);
if (disc > 0)
fun2(disc, a, b);
if (disc == 0)
fun3(a, b);
return 0;
}
祝你愉快!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询