原题链接:[编程入门]自定义函数求一元二次方程
0.0分
48 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
看完我的你就知道多定义几个变量的重要性了( #include<stdio.h> #include<math.h> int main() { int a,b,c; double d; scanf("%d%d%d",&a,&b,&c); if(b*b-4*a*c>0){ printf("x1=%.3lf x2=%.3lf",-1*b/2.0/a+sqrt(b*b-4*a*c)/2.0/a,-1*b/2.0/a-sqrt(b*b-4*a*c)/2.0/a); } else if(b*b-4*a*c==0){ printf("x1=%.3lf x2=%.3lf",-1*b/2.0/a,-1*b/2.0/a); } else { printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",-1*b/2.0/a,sqrt(fabs(b*b-4*a*c))/2.0/a,-1*b/2.0/a,sqrt(fabs(b*b-4*a*c))/2.0/a); } }
void Cal(double num_1 ,double num_2 ,double num_3) { double x_1 = 0 ,x_2 = 0; double data = pow(num_2 ,2) - (4 * num_1 * num_3); /*B^2 - 4* A * C*/ if(data >= 0) { x_1 = ((-num_2) + sqrt(data)) / (2 * num_1); x_2 = ((-num_2) - sqrt(data)) / (2 * num_1); printf("x1=%.3lf x2=%.3lf" ,x_1 ,x_1); } else if(data < 0) /* 复数显示方式需要注意*/ { x_1 = sqrt(fabs(data)) / (2 * num_1); x_2 = sqrt(fabs(data)) / (2 * num_1); printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",(-num_2) / (2 * num_1),x_1,(-num_2) / (2 * num_1),x_2); } }
#include<stdio.h> #include<math.h> float arr[2]; float* dayu(int a,int b,int c) { arr[0]=(float)(-b+sqrt(b*b-4*a*c))/(2*a); arr[1]=(float)(-b-sqrt(b*b-4*a*c))/(2*a); return arr; } float* dengyu(int a,int b,int c) { arr[1]=arr[0]=-b/(2*a); return arr; } float* xiaoyu(int a,int b,int c) { arr[0]=arr[1]=(float)-b/(2*a); return arr; } int main() { int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=b*b-4*a*c; if(d>0) { dayu(a,b,c); printf("x1=%f x2=%f",arr[0],arr[1]); } if(d==0) { dengyu(a,b,c); printf("x1=%f x2=%f",arr[0],arr[1]); } if(d<0) { xiaoyu(a,b,c); printf("x1=%.3f+%.3fi
@stolen 主函数版本的
#include<stdio.h> #include<math.h> int main(){ double a,b,c,d,x1,x2,sb; scanf("%lf %lf %lf",&a,&b,&c); d = b*b-4*a*c; sb = sqrt(fabs(d)); if(d>0){ x1 = (-b+sb)/2*a; x2 = (-b-sb)/2*a; printf("x1=%.3lf,x2=%.3lf",x1,x2); } else if(d==0){ x1 = x2 = sb/2*a; printf("x1=%.3lf,x2=%.3lf",x1,x2); } else if(d<0){ double m,n; m=(-b)/(2*a); // a+bi a=-b/2a b=根号-d/2a; n=sqrt(-d)/(2*a); printf("x1=%.3lf+%.3lfi x2=%.3lf-%.3lfi",m,n,m,n); } return 0; }