繁体   English   中英

如何检查c中是否有除零

[英]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中,浮点除零不会使程序停止异常。 相反,它产生的结果是infinityNaN 你可以检查这些都不是使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM