C ++:函数有价值吗?

时间:2015-11-16 11:09:37

标签: c++ function

我写了一个简单的代码来检查数字是否为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之外的任何数字和任何非回文数分别传递给foocheckpalin时,我总是得到以下输出:

  

1

     

16640

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

如果条件为true,则您的函数定义不会指定要返回的内容。函数必须始终返回某些,因此它只返回垃圾(虽然它可能是可预测垃圾,但值未定义)。

你应该重写你的功能:

int foo()
{
   if (n==10)
      return n;
   else
      return 0;
}