注册 登录
编程论坛 C++教室

判断是否是回文数的程序出现问题

安静的高调 发布于 2011-03-26 21:48, 651 次点击
#include<iostream>
using namespace std;
int main()
{ bool flog;
       int m;
    cin>>m;
 int hw(int m);
  
  if(flog==1)
     cout<<"m是回文数";

    else cout<<"m不是回文数";
return 0;
}

int hw(int x)
{
int  flog =0;
 int s=0;
 int n,k;
 k=x;
 for(;x>=1;)
 {
     n=x%10;
     x=x/10;
    // b=x10%10;
    s=s*10+n;
 }
   
 if(x==s)
    flog =1;
 else flog=0;
    return (flog);
}
5 回复
#2
寒风中的细雨2011-03-26 22:55
程序代码:
#include<iostream>
using namespace std;

int main()
{
    int m;
    cin>>m;

    bool hw(int);

    if( hw(m) )
    {
        cout<<"m是回文数" << endl;
    }
    else
    {
        cout<<"m不是回文数" << endl;
    }

    return 0;
}

bool hw(int x)
{
    int s=0;
    int n,k;
    k=x;
    for(; x>=1 ; )
    {
         n=x%10;
         x=x/10;
        s=s*10+n;
    }
   
    if(k==s)
    {
        return true;
    }
    else
    {
        return false;
    }
}
#3
寒风中的细雨2011-03-26 22:56
if(x==s)
//这句是错的

main中忘记调用函数啦  flag 也没有赋值   
#4
lucky5635912011-03-29 07:44
flog是bool,在被调函数里是int型,而且你的x已经改变了,怎么等于s呢?main中没调用函数
#5
紫凤双飞2011-03-30 00:26
以下是引用安静的高调在2011-3-26 21:48:22的发言:

#include<iostream>
using namespace std;
int main()
{ bool flog;
       int m;
    cin>>m;
 int hw(int m);
   *******
  if(flog==1)
     cout<<"m是回文数";

    else cout<<"m不是回文数";
return 0;
}

int hw(int x)
{
int  flog =0;
 int s=0;
 int n,k;
 k=x;
 for(;x>=1;)
 {
     n=x%10;
     x=x/10;
    // b=x10%10;
    s=s*10+n;
 }
   
 if(x==s)
    flog =1;
 else flog=0;
    return (flog);
}

红色的那一处应加上:flog=hw(m);把flog改为int型

[ 本帖最后由 紫凤双飞 于 2011-3-30 00:27 编辑 ]
#6
安静的高调2011-04-01 23:20
回复 5楼 紫凤双飞
谢谢你的帮忙!呵呵……
1