gpt4 book ai didi

C++根据输入返回一个字符串或一个int

转载 作者:行者123 更新时间:2023-11-27 23:56:47 25 4
gpt4 key购买 nike

我知道一个函数只能返回一种类型的值,但我不确定如何表达这一点。

我的函数找到一个阶乘,如果输入小于 0,我想打印一条错误消息。

int fact(int a){
if (a>=0){
//calculate factorial
}
return(product);
}
else {
cout << "Factorials of negative numbers are not defined\n";
return(0);
}
}

这行得通,但我只希望在 a 小于 0 时显示错误消息。现在,我的负数输出是

Take the factorial of: -2
Factorials of negative numbers are not defined
0

我知道这是一个小问题,但是有什么办法可以去掉 0 吗?返回 NULL 仍会打印 0。从 else 语句中删除 return(0) 会打印 4757824。

最佳答案

“关注点分离”您的 fact() 方法既计算阶乘又打印错误。它真的不应该两者兼顾!

当发生错误时,为什么不让 fact() 返回一些已知但不合法的值(比如 -1)。然后调用代码可以检查 fact() 是否有效。

不要忘记,如果输入太大,您将遇到另一个错误情况...

关于C++根据输入返回一个字符串或一个int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42104926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com