第1个回答 2013-06-20
#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);
}
}
第2个回答 2013-06-20
#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;
}
祝你愉快!本回答被提问者和网友采纳