麻烦大神帮我看一下是不是我的代码写错了
运行出来的结果总是-4.999…
1条回答 默认 最新
关注
题主思路是有的,就是可能没有考虑全面,if后直接else是不对的,因为分三种情况
可看一下下面代码的实现:#include <stdio.h> #include <math.h> int main() { float a,b,c,dis,x1,x2; printf("请输入a,b,c的值: "); scanf("%f %f %f",&a,&b,&c); dis=b*b-4*a*c; if(dis<0) { printf("该函数无实根。\n"); return 0; } else if(dis==0) { x1=x2=(-b)/(a*a); printf("该函数有两个相等的实根:\n"); } else { x1=(-b+sqrt(dis))/(2*a); x2=(-b-sqrt(dis))/(2*a); printf("该函数有两个不等的实根:"); } printf("x1=%f x2=%f\n",x1,x2); return 0; }
运行结果:
希望对题主有所帮助,望采纳!!本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报