我写了一个简单的代码来检查数字是否为10。如果是,则该函数返回10.
int foo()
{
if (n==10)
return n;
}
我写了另一个函数来检查一个数字是否是回文
int checkpalin(int n)
{
int temp=n;
double rev=0;
while (temp)
{
int d=temp%10;
rev=rev*10+d;
temp/=10;
}
if (rev==n)
return n;
}
我调用并显示如下函数:
cout<<foo(11)<<endl<<checkpalin(25)<<endl;
当我将除10之外的任何数字和任何非回文数分别传递给foo
和checkpalin
时,我总是得到以下输出:
1
16640
为什么会发生这种情况?
答案 0 :(得分:2)
如果条件不为true,则您的函数定义不会指定要返回的内容。函数必须始终返回某些,因此它只返回垃圾(虽然它可能是可预测垃圾,但值未定义)。
你应该重写你的功能:
int foo()
{
if (n==10)
return n;
else
return 0;
}