PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Monday, August 15, 2022

[FIXED] Why does function return two values despite returning 0?

 August 15, 2022     c, function, output     No comments   

Issue

I am making a calculator in c, everything works except when using the division command "/"

When a number is divided by 0 it should print out "NaN" and then exiting the program. However the output is: NaN0.0

Meaning that the function is also returning the value of the float despite using the return 0 command.

How do i make it so that the function just returns "NaN"?

float calc(float param1, char operator1, float param2){
#include <math.h>

float result;


switch(operator1){

        case '+':
                result = param1 + param2;
                return result;
break;

        case '-':
                result = param1 - param2;
                return result;
break;

        case '*':
                result = param1 * param2;
                return result;
break;

        case'/':
                if(param2 == 0){printf("NaN"); //Issue here
                return 0;
                }
                else{
        result = param1 / param2;}
        return result;
break;

        case '^':
        result = pow(param1, param2);
        return result;
}

}

 

Solution

I'd need the full code to be able to be 100% certain, but I think what you are doing is the following:

printf('%lf', calc(0, '/', 0)); 

So, you're outputting the result of the execution of the "calc" command on screen, which is here: 0

But, before returning this 0 value, you're also printing the value "NaN" to screen.

So, by doing:

printf('%lf', calc(0, '/', 0)); 

You're telling the computer:

  • Compute the result of calc(0, '/', 0) : It prints NaN during the execution
  • Then, print the result, which is 0

That's why your computer is showing NaN 0

The function is not returning two values. It's indeed returning only one, but also printing NaN.

To fix that, just remove the print and return a special value that can be understood as NaN in the rest of your code.



Answered By - Alexis Clarembeau
Answer Checked By - David Goodson (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

1,262,274

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © 2025 PHPFixing