原题链接:[编程入门]自定义函数求一元二次方程
0.0分
55 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdlib.h> #include <math.h> #define EPS 1e-6 int main() { float a,b,c,disc,p,q; scanf("%f %f %f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(fabs(disc))/(2*a); if(fabs(disc)<=EPS) { printf("x1=%.3f x2=%.3f ",p,p); } else { if(disc>EPS) { printf("x1=%.3f x2=%.3f",p+q,p-q); } else { printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",p,q,p,q); } } return 0; } 课本的例题#include<stdio.h> #include<math.h> #define EPS 1e-6 void Num(float a,float b,float c); int main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); Num(a,b,c); return 0; } //计算一元二次方程的根 void Num(float a,float b,float c) { float disc,p,q; //disc为判别式 disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(fabs(disc))/(2*a); if(fabs(disc)<=EPS) //判别式等于0,输出两个相等的实根 { printf("x1=%.3f x2=%.3f",p,p); } else { if(disc>EPS) //判别式大于0 { printf("x1=%.3f x2=%.3f",p+q,p-q); } else //判别式小于0 { printf("x1=%.3f+%.3fi x2=%.3f-%.3fi",p,q,p,q); } } }#include <stdio.h> #include <math.h> double x1, x2; void function(double a, double b, double c) { double data = b * b - 4 * a * c; if (data >= 0) { x1 = (-b + sqrt(data)) / 2 * a; x2 = (-b - sqrt(data)) / 2 * a; printf("x1=%.3lf x2=%.3lf", x1, x2); } else { printf("x1=%.3lf+%.3lfi ", -b / (2 * a), sqrt(-data) / (2 * a)); printf("x2=%.3lf-%.3lfi", -b / (2 * a), sqrt(-data) / (2 * a)); } } int main() { double a, b, c; scanf("%lf%lf%lf", &a, &b, &c); function(a, b, c); return 0; }@黄小橘 float x1,x2,p,q; p=-b/2*a; q=sqrt(m-n)/2*a; x1=p-q; x2=p+q; printf("x1=%f x2=%f",x1,x2); }#include <stdio.h> #include <math.h> void save1(int a); void save2(int m,int n,int a,int b,int c); void save3(int m,int n,int a,int b,int c); int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); float m,n,k; m=b*b; n=4*a*c; if((m-n)<0) save1(a); else { if((m-n)==0) save2(m,n,a,b,c); else { save3(m,n,a,b,c); } } return 0; } void save1(int a) { printf("无解"); } void save2(int m,int n,int a,int b,int c) { float x1,x2,p,q; p=-b/2*a; q=sqrt(m-n)/2*a; x1=x2=p+q; printf("x1=x2=%f",x1); } void save3(int m,int n,int a,int b,int c) {