#include<stdio.h> #include<math.h> int root(); main() { int s; float t1,t2,t3; double *p1,*p2,j1,j2; p1=&j1; p2=&j2; printf("请输入一元二次方程的3个系数(空格隔开回车结束)"); scanf("%f%f%f",&t1,&t2,&t3); s=root(t1,t2,t3,p1,p2); if(s==0) printf("该一元二次方程无解!\n"); else if(s==1) { printf("该一元二次方程有两个相同的解!\n"); printf("两个相同的解为p1=p2=%f\n",*p1); } else if(s==2) { printf("该一元二次多项式有两个不同的解!\n"); printf("方程的解为p1=%f\n",*p1); printf("方程的解为p2=%f\n",*p2); }
} root(float a ,float b,float c,double *x1,double *x2) { if(b*b-4*a*c>=0&&a!=0) { *x1=(-b+sqrt(b*b-4*a*c))/(2*a); *x2=(-b-sqrt(b*b-4*a*c))/(2*a); return(2); } else if(b*b-4*a*c>=0&&a==0) { *x1=-c/b; *x2=-c/b; return(1); } else return(0); }
就是得不出结果 不知道是哪里错了