C语言二次方程求根代码分析及修复:避免除零错误
C语言二次方程求根代码分析及修复:避免除零错误
在代码中,存在两个问题:
-
第一个问题是在输入的时候,使用了
%lf来读取a、b和c的值,但是应该使用%f来读取。 -
第二个问题是在计算
x1和x2的时候,有可能出现除以0的情况,需要对a进行判断,如果a等于0,则输出'000'。
下面是修改后的代码:
#include <stdio.h>
#include <math.h>
int main(){
double a,b,c,m,x1,x2,z;
scanf('%f%f%f',&a,&b,&c);
if(a == 0){
printf('000');
return 0;
}
m = b*b - 4*a*c;
z = sqrt(m);
if(m < 0){
printf('000');
}
else{
x1 = (-b + z) / (2*a);
x2 = (-b - z) / (2*a);
printf('x1=%7.2f\nx2=%7.2f\n',x1,x2);
}
return 0;
}
总结
本篇文章通过分析C语言代码,指出了代码中存在的错误并提供了修正方法。希望能够帮助读者更好地理解C语言编程中的常见错误,并提高代码质量。
原文地址: https://www.cveoy.top/t/topic/pjze 著作权归作者所有。请勿转载和采集!