解题思路:
这段代码是用C语言编写的,用于求解二次方程的根。二次方程的形式为ax^2 + bx + c = 0。代码中定义了三个函数:root_above、root_equal和root_belove,分别用于处理二次方程的三种情况:1. 当判别式d > 0时,方程有两个不相等的实根,调用root_above函数计算并输出这两个实根; 2. 当判别式d = 0时,方程有一个实根(两个相等),调用root_equal函数计算并输出这个实根; 3. 当判别式d < 0时,方程有两个共轭复数根,调用root_belove函数计算并输出这两个复数根。 在main函数中,首先输入二次方程的系数a、b、c,然后计算判别式d,根据d的值调用相应的函数求解二次方程的根。

代码:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
void root_above(float a,float b,float c)
{
float x1_r,x2_r;
float d = b*b-4*a*c;
x1_r = (0-b + sqrtf(d))/2/a;
x2_r = (0-b - sqrtf(d))/2/a;
printf("x1=%.3f x2=%.3f\n",x1_r,x2_r);
}
void root_equal(float a,float b,float c)
{
float x1_r,x2_r;
x1_r = (0-b )/2/a;
x2_r = (0-b )/2/a;
printf("x1=%.3f x2=%.3f\n",x1_r,x2_r);
}
void root_belove(float a,float b,float c)
{
float x1_r,x1_i,x2_r,x2_i;
float d = 4*a*c - b*b;
x1_r = (0-b )/2/a;
x2_r = (0-b )/2/a;
x1_i = (sqrtf(d))/2/a;
x2_i = (0- sqrtf(d))/2/a;
printf("x1=%.3f+%.3fi x2=%.3f%.3fi\n",x1_r,x1_i,x2_r,x2_i);
}
int main(void)
{
float a,b,c;
float d;
float x1_r,x1_i,x2_r,x2_i;
scanf("%f %f %f",&a,&b,&c);
d = b*b-4*a*c;
if(d > 0 ){
root_above(a,b,c);
}else if(d == 0){
root_equal(a,b,c);
}else{
root_belove(a,b,c);
}
return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论