题目描述:用户输入一个数字,构造其反序数,并判断是否是回文数。
分析:可以用数组构造,但我正在学习第2章:表达与运算,因此用计算的方式构造反序数。
代码:
#include<iostream>
using namespace std;
int main()
{
int a,d,copy;
int b=0,flag=0;
cout<<"请输入一个数:"<<endl;
cin>>a;
copy=a; //记录a的值
while(a>0) //计算反序数
{
d=a%10;
b=b*10+d;
a=a/10;
}
cout<<"反序数为:"<<b<<endl;
if(b==copy)
{
flag=1;
}
cout<<"回文数:"<<flag<<endl;
return 0;
}
- 一开始犯了两个错误:
(1)忘记初始化b=0,后面直接用到了b=b*10+d。
(2)忘记用变量copy保存用户输入的值,后面直接判断if(a==b)。
- 这个程序一编译就会被360当做木马病毒...可能是因为if条件里只包含了一条语句...