注册 登录
编程论坛 VC++/MFC

你妹的回文数~

小小小小小黄 发布于 2012-12-11 17:26, 729 次点击
编写函数bool IsPalindrome(int m),判断m是否为回文数。如果是回文数则返回true,否则返回false,并在main函数中测试。

#include<iostream.h>
int huiwenshu(int m);
void main()
{
    int m;
    cin>>m;
    cout<<huiwenshu(m)<<endl;
}
int huiwenshu(int m)
{
    int k=m,n=0;
    while(k!=0)
    {
        n=n*10+k%10;
        k=k/10;
    }
    if(n==k)
    {
        return true;
    }
    else
    {
        return false;
    }
}

又是作业,
老师没空理我着等差生。
1.为毛编译没错误却输出不对呢;
2.while(k!=0)
 替换成while(k)是否有区别?
求教~
7 回复
#2
crystall2012-12-11 17:41
回复 楼主 小小小小小黄
while(k!=0) 等价于 while(k)

#3
yuccn2012-12-11 18:31
int huiwenshu(int m);
void main()
{
    int m;
    cin>>m;
    if (huiwenshu(m)) {
        cout<<m<<"是回文数"<<endl;
    }
    else {
        cout<<m<<"不是是回文数"<<endl;
    }

}
int huiwenshu(int m)
{
    int k=m,n=0;
    while(k!=0)
    {
        n=n*10+k%10;
        k=k/10;
    }
     if(n==m)
    // if(n==k)

    {
        return true;
    }
    else
    {
        return false;
    }
}
#4
小小小小小黄2012-12-11 19:35
回复 2楼 crystall
但是题目要求就是要输出 true 和 false 怎么办,
在我模糊的印象中,老师是在函数中设置了return 赋给了main,
为毛在函数中 true 和 false 显示蓝色,是预设短语?

求教~
#5
小小小小小黄2012-12-11 19:55
回复 2楼 crystall
bool IsPalindrome(int m);
#include<iostream.h>
void main()
{
    int m;
    cin>>m;
    if (bool IsPalindrome(m))
 {
        cout<<true<<endl;
    }
    else
 {
        cout<<false<<endl;
    }
}
bool IsPalindrome(int m)
{
    int k=m,n=0;
    while(k)//while(k!=0)
    {
        n=n*10+k%10;
        k=k/10;
    }
    if(n==m)
    {
        return true;
    }
    else
    {
        return false;
    }
}


为毛我改成这样还是输出的是 1 或者 0~
真没有办法输出true 和false么~

求教~
#6
crystall2012-12-11 20:02
回复 5楼 小小小小小黄
程序代码:
void main()
{
    int m;

    cin>>m;
   
    bool bRet = IsPalindrome(m);

    if (bRet == true )
    {
        cout<< "true" <<endl;
    }
    else
    {
        cout<< "false" <<endl;
    }
}
#7
mmmmmmmmmmmm2012-12-12 11:58
楼主 01也可表示true false
#8
小赵q12012-12-23 18:02
你可以把主函数的最后加上一句:
if(返回值==0)
printf("true\n");
else printf("false\n");
1