用switch语句编写求一元二次方程的解的方程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用switch语句编写求一元二次方程的解的方程相关的知识,希望对你有一定的参考价值。
#include "math.h"
#include "stdio.h"
main()
double a,b,c,d,flag,x1,x2,p,q;
printf("输入方程的三个系数a,b,c=?");
scanf("%f,%f,%f",&a,&b,&c);
d=b*b-4*a*c;
if(fabs(a)<=1.0e-6) flag=1;
else if(fabs(d)<=1.0e-6) flag=2;
else if(d>1.0e-6) flag=3;
else flag=4;
switch(flag)
case 1:printf("方程不是一个二次方程。\n");
break;
case 2:printf("方程有两个相等的实数根: \n x1,x2=%f\n",x1,x2);
break;
case 3:x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("方程有两个不相等的实数根: \n x1,x2=%f\n",x1,x2);
break;
case 4:
p=-b/(2*a);
q=sqrt(-d)/(2*a);
printf("方程有两个共轭复数: \n");
printf("x1=%f + %f \n",p,q);
printf("x1=%f - %f \n",p,q);
break;
错在那里
#include "stdio.h"int main(void)
double a,b,c,d,x1,x2,p,q;
int flag;
printf("输入方程的三个系数a,b,c=?");
scanf("%lf,%lf,%lf", &a, &b, &c);
d = b * b - 4 * a * c;
if(fabs(a) <= 1.0e-6)
flag=1;
else if(fabs(d) <= 1.0e-6)
flag=2;
else if(d > 1.0e-6)
flag=3;
else
flag=4;
switch(flag)
case 1:
printf("方程不是一个二次方程。\n");
break;
case 2:
x1 = (-b + sqrt(d)) / (2 * a);
x2 = x1;
printf("方程有两个相等的实数根: \n x1 = x2 = %lf\n", x1);
break;
case 3:
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("方程有两个不相等的实数根: \nx1 = %lf\nx2 = %lf\n",x1,x2);
break;
case 4:
p = -b / (2 * a);
q = sqrt(-d) / (2 * a);
printf("方程有两个共轭复数: \n");
printf("x1 = %lf + %lf \n", p, q);
printf("x1 = %lf - %lf \n", p, q);
break;
return 0;
注:由于时间关系,注释就没写了,建议回去再看一下switch的运用。愿能解决你的问题,编译一下吧!祝你好运。 参考技术A scanf("%f,%f,%f",&a,&b,&c);改为scanf("%lf,%lf,%lf",&a,&b,&c);double型输入用%lf格式符
变量flag类型变为int;传递给switch()的值必须是有最终结果的整型变量或表达式
将double a,b,c,d,flag,x1,x2,p,q;改为下面两行:
double a,b,c,d,x1,x2,p,q;
int flag;
输入a,b,c时不要忘记中间的“,”。
用python求一元二次方程的解
编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。python编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。
一元二次方程为:ax^2+bx+c=0
我们先编写一个最简单的版本,我们成功的计算除了数值。下面这个程序不适合复数形式
参考技术A 这个,你可以定义一个函数,然后将相应的参数输入进去就行了,最多也就是四个参数,因为公式里面就用了三个数,直接套公式就行啦。 参考技术B 求一元二次方程的解来说的话,就是用这个公式带入进去就可以求出来的。以上是关于用switch语句编写求一元二次方程的解的方程的主要内容,如果未能解决你的问题,请参考以下文章