锐锐


私信TA

用户名:dotcpp0725362

访问量:1066

签 名:

等  级
排  名 4273
经  验 1729
参赛次数 0
文章发表 34
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:
这段代码是用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 人评分

  评论区

  • «
  • »