原题链接:[编程入门]自定义函数求一元二次方程
解题思路:本质就是对函数的运用
注意事项:公式别写错

参考代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void dayu(double a, double b, double c);
void xiaoyu(double a, double b,double c);
void dengyu(double a, double b);
int main(void)
{
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);
if (b * b - 4 * a * c > 0)
dayu(a, b, c);
if (b * b - 4 * a * c < 0)
xiaoyu(a,b,c);
if (b * b - 4 * a * c == 0)
dengyu(a, b);
return 0;
}
void dayu(double a, double b, double c) {
double x1, x2;
x1 = (pow((-b + (b * b - 4 * a * c)),(1.0 / 2))) / 2 * a;
x2 = (pow((-b - (b * b - 4 * a * c)), (1.0 / 2))) / 2 * a;
printf("x1=%lf x2=%lf", x1, x2);
}
void xiaoyu(double a , double b,double c) {
printf("x1=%.3lf+%.3lfi ", -b / (2 * a), sqrt(4 * a * c - b*b) / (2 * a)); //x=(-b± i√(4ac-b²))/(2a)
printf("x2=%.3lf-%.3lfi", -b / (2 * a), sqrt(4 * a * c - b*b) / (2 * a));
}
void dengyu(double a, double b) {
double x1, x2;
x1 = -b / (2 * a);
x2 = x1;
printf("x1=%.3lf x2=%.3lf", x1, x2);
}0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> #include<math.h> void fun1(float a,float b,float c) { double s; s=sqrt(b*b-4*a*c); printf("x1=%.3f x2=%.3f",(-b+s)/2/a,(-b-s)/2/a); } void fun2(float a,float b,float c) { fun1(a,b,c); } void fun3(float a,float b,float c) { double s; s=sqrt(4*a*c-b*b); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",-b/a/2,s/2/a,-b/a/2,s/2/a); } int main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); if(b*b-4*a*c>0)fun1(a,b,c); else if(b*b-4*a*c==0)fun2(a,b,c); else fun3(a,b,c); return 0; }//比较傻的方法