how to check if there is a division by zero in c

放肆的年华 提交于 2019-11-30 04:09:07

问题


#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);

}

回答1:


#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);

}



回答2:


This should do it. You need to check for division by zero before performing the division.

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);
    }
}



回答3:


By default in UNIX, floating-point division by zero does not stop the program with an exception. Instead, it produces a result which is infinity or NaN. You can check that neither of these happened using isfinite.

x = y / z; // assuming y or z is floating-point
if ( ! isfinite( x ) ) cerr << "invalid result from division" << endl;

Alternately, you can check that the divisor isn't zero:

if ( z == 0 || ! isfinite( z ) ) cerr << "invalid divisor to division" << endl;
x = y / z;



回答4:


With C99 you can use fetestexcept(2) et alia.



来源:https://stackoverflow.com/questions/2485547/how-to-check-if-there-is-a-division-by-zero-in-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!