解题思路:根据一元二次方程求根公式的三种情况,用switch语句来判断
注意事项:当求根公式<0时,i^2=-1,若为根号下的负数,可写为根号下该数的整数*i
参考代码:
#include<stdio.h>
#include<math.h>
void root1(int a,int b,int c)
{
float x1,x2;
x1=(-b+sqrt(b*b-a*c*4))/(2.0*a);
x2=(-b-sqrt(b*b-a*c*4))/(2.0*a);
printf("x1=%.3f x2=%.3f",x1,x2);
}
void root2(int a,int b,int c)
{
float x1,x2;
x1=x2=(-b+sqrt(b*b-a*c*4))/(2.0*a);
printf("x1=%.3f x2=%.3f",x1,x2);
}
void root3(int a,int b,int c)
{
printf("x1=%.3f+%.3fi ",-b/(2.0*a),sqrt(fabs(b*b-4*a*c))/(2.0*a));//这里i因为i^2=-1
printf("x2=%.3f-%.3fi",-b/(2.0*a),sqrt(fabs(b*b-4*a*c))/(2.0*a));
}
int main()
{
int a,b,c,x;
scanf("%d %d %d",&a,&b,&c);
if((b*b-a*c*4)>0) x=1;
if((b*b-a*c*4)==0) x=2;
if((b*b-a*c*4)<0) x=3;
switch(x)
{
case 1:root1(a,b,c);break;
case 2:root2(a,b,c);break;
case 3:root3(a,b,c);break;
}
return 0;
}
0.0分
0 人评分
1642题解浏览:784 |
简单的a+b (C语言代码)浏览:529 |
简单的a+b (C语言代码)浏览:618 |
1051(奇了怪了)浏览:747 |
第三届阿里中间件性能挑战赛-总决赛亚军比赛攻略浏览:1170 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:646 |
A+B for Input-Output Practice (III) (C语言代码)浏览:455 |
求教大神。。。。1063,统计字符。浏览:11704 |
C语言训练-自由落体问题 (C语言代码)浏览:637 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:515 |