解题思路:
这段代码是用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 人评分
【偶数求和】 (C语言代码)记得sum的归零时机浏览:952 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:551 |
逆反的01串 (C++代码)(依旧推荐switch)浏览:965 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:1746 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:791 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:706 |
永远的丰碑 (C语言代码)浏览:662 |
大神老白 (C语言代码)浏览:628 |
简单的a+b (C语言代码)浏览:750 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:620 |