【发布时间】:2021-12-30 23:20:13
【问题描述】:
我正在用 c 做一个计算器,除了使用除法命令“/”之外,一切正常
当一个数字除以 0 时,它应该打印出“NaN”,然后退出程序。但是输出是:NaN0.0
意味着尽管使用了 return 0 命令,该函数也返回浮点值。
如何使函数只返回“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;
}
}
【问题讨论】:
-
你绝对不应该有一个
#include行inside你的函数。 -
也就是说,您的代码显示
NaN,然后显示0.0,因为您显示NaN,然后将0.0返回到调用代码,它会显示该代码。