#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); }
4 Réponses :
Cela devrait le faire. Vous devez vérifier la division par zéro avant d'effectuer la 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); } }
#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); }
avec C99, vous pouvez utiliser FetestExcept (2) Code> A > et Alia. P>
Ce n'est que pour les exceptions ponctuelles flottantes cependant? L'exemple ci-dessus est pour une fracture entière par zéro.
Par défaut dans UNIX, la division de points flottants par zéro n'arrête pas le programme avec une exception. Au lieu de cela, il produit un résultat qui est alternativement, vous pouvez vérifier que le diviseur n'est pas zéro: p> infini code> ou
nan code>. Vous pouvez vérifier qu'aucun de ceux-ci n'est arrivé à l'aide de
isminite code>.
if ( z == 0 || ! isfinite( z ) ) cerr << "invalid divisor to division" << endl;
x = y / z;
Ce n'est pas un point de division de point flottant par zéro mais il est entier (le résultat de l'expression de la division entière est de la suite à un flotteur par la suite).
@Paul: C'est vrai dans son code, mais je n'ai pas reproduit son code. J'ai ajouté un commentaire, cela aide-t-il?