[英]how to check if there is a division by zero in c
#include<stdio.h>
void function(int);
int main()
{
int x;
printf("Enter x:");
scanf("%d", &x);
function(x);
return 0;
}
void function(int x)
{
float fx;
fx=10/x;
if(10 is divided by zero)// I dont know what to put here please help
printf("division by zero is not allowed");
else
printf("f(x) is: %.5f",fx);
}
#include<stdio.h>
void function(int);
int main()
{
int x;
printf("Enter x:");
scanf("%d", &x);
function(x);
return 0;
}
void function(int x)
{
float fx;
if(x==0) // Simple!
printf("division by zero is not allowed");
else
fx=10/x;
printf("f(x) is: %.5f",fx);
}
这应该做到这一点。 在执行除法之前,您需要检查除零。
void function(int x)
{
float fx;
if(x == 0) {
printf("division by zero is not allowed");
} else {
fx = 10/x;
printf("f(x) is: %.5f",fx);
}
}
默认情况下,在UNIX中,浮点除零不会使程序停止异常。 相反,它产生的结果是infinity
或NaN
。 你可以检查这些都不是使用isfinite
发生的。
x = y / z; // assuming y or z is floating-point
if ( ! isfinite( x ) ) cerr << "invalid result from division" << endl;
或者,您可以检查除数不为零:
if ( z == 0 || ! isfinite( z ) ) cerr << "invalid divisor to division" << endl;
x = y / z;
使用C99,您可以使用fetestexcept(2)
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.