Learning by doing: Reading books and trying to understand the (code) examples
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
713 B

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <fenv.h>
  4. double cubeNumber(double number);
  5. int main (void) {
  6. double number;
  7. double cube_number;
  8. int error = 0;
  9. printf("Give a number: ");
  10. if (scanf("%lf", &number) != 1 || isnan(number)) {
  11. printf("Not a number!\n");
  12. error = 1;
  13. } else {
  14. cube_number = cubeNumber(number);
  15. if (cube_number != NAN) {
  16. printf("%lf\n", cube_number);
  17. } else {
  18. printf("Floating point exception occured!\n");
  19. error = 1;
  20. }
  21. }
  22. return error;
  23. }
  24. double cubeNumber (double number) {
  25. double i;
  26. feclearexcept(FE_ALL_EXCEPT);
  27. i = pow(number, 3);
  28. if (fetestexcept(FE_ALL_EXCEPT) == 0) {
  29. i = NAN;
  30. }
  31. return i;
  32. }