解题思路:
这段代码是用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语言训练-角谷猜想 (C语言代码)浏览:1761 |
Pascal三角 (C语言代码)浏览:1248 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:638 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:587 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:632 |
格式化数据输出 (C语言代码)浏览:880 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2232 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:627 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:837 |
【计算两点间的距离】 (C语言代码)浏览:872 |