用C语言求ax^2+bx+c=0的根 用switch语句来

给个代码吧~谢啦。用Switch语句的,不要if-else的

无论怎样编程,总得判断b^2-4ac的取值,这样才可以做switch-case得结构,或者用变相的判断
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-09
#include "stdio.h"
#include "math.h"

void main ()
{
float a, b, c,d,x1,x2;
printf ("input a,b,c!\n");
scanf ("%f%f%f", &a, &b, &c);
d=b*b-4*a*c;
switch(int(d==0? 0:d/fabs(d)))
{
case -1:
printf ("no root!\n");
break;
case 0:
x1 =-b / (2 * a);
printf ("same root x=%-6.4f\n", x1);
break;
case 1:
d=sqrt(d);
a=2*a;
x1 = (-b - d) / a;
x2 = (-b + d) / a;
printf ("two roots are x1=%-6.4f,x2=%-6.4f\n", x1, x2);
break;
}
}本回答被提问者采纳

在C语言中用switch语句求ax2+bx+c=0方程的根
根据方程求根(不一定是一元二次方程)的方法,先进行判断,当a=0,bx+c=0;当a!=0,……。a=0,还要考虑b==0?,反正就是三个参数分别讨论就行了,switch就用在这条件上就可以了。

C语言,求一元二次方程ax2+bx+c=0的根。
void erci(int a,int b,int c){ int data;double x1,x2;data=b*b-4*a*c;if(data<0)printf("得他小于零,无解\\n");else if(data==0){ x1=-b\/2*a;printf("得他等于零,有一个解:\\tx=%lf\\n",x1);} else { x1=(-b+sqrt(data))\/2*a;x2=(-b-sqrt(data))\/2*a;...

c语言解一元二次方程
printf("求方程ax^2+bx+c=0的根:\\n");L: printf("请分别输入a,b,c的值。\\n");double a,b,c,x1,x2,x,y;char z;printf("a=");fflush(stdin); \/\/强制清空键盘缓冲区 scanf("%lf",&a);printf("b=");fflush(stdin); \/\/强制清空键盘缓冲区 scanf("%lf",&b);printf("c="...

c语言中switch语句问题 大侠们帮帮忙。 为何过程中先判断switch了为defau...
在printf("是否求%dx^2+%dx+%d=0的根? Y\/N ",a,b,c);后加一句 fflush(stdin);因为你scanf("%d",&c);的时候按了回车,这个回车还存在输入缓存里。。。当你ch=getchar();的时候,回车才出来,fflush(stdin)作用是清除标准输入设备stdin的缓存,差不多那意思吧,呵呵。你可以看下M...

高手们帮我看看c语言程序,请给每行代码和功能注释
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根 分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下: d=b*b-4*a*c; if(d>=0) {x1=(-b+sqrt(d))\/2a; x2=(-...

C语言中switch怎么用?
在C语言中使用switch语句,遵循以下模板:switch (表达式或属性){ case 值1 : 语句1 break;case 值2 : 语句2 break;...default : 值n break;} 从表达式或属性值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号...

怎么才能更好的记住C语言?
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根 分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:d=b*b-4*a*c;if(d>=0){x1=(-b+sqrt(d))\/2a; x...

求助一道C语言设计题目
include <stdio.h>int main(){ int year,n=0; for( year=1;year<=3000;year++ ) { if ( (year%4==0 && year%100!=0) || year%400==0 ) n++; } printf("n=%d\\n", n ); return 0;}

c语言怎么用switch语句编写四则运算?
switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断。下例为用switch语句编写的四则运算:include <stdio.h> void main(){ double N1,N2;char Operation;printf("输入运算的两个数");scanf("%lf%lf",&N1,N2);printf("请输入运算...

C语言,以下如何理解,谢谢!
这是典型的分支结构,如果条件成立,执行块1,否则执行块2,块1和块2都有1条或若干条语句构成。 如:求ax^2+bx+c=0的根 分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下: d=b*b-4*a*c; if(d>=0) {x1=(-b+sqrt(d))\/2a; x1=(-b-sqrt(d))\/2a...

相似回答