c++如何判断回文数
最佳答案
[cpp]viewplaincopyprint?
//常见算法.cpp:定义控制台应用程序的入口点。
//回文
#include"stdafx.h"
#include<iostream>
usingnamespacestd;
voidreverse_num(int&n)
{
intrem=0;//用于表示余数
intreverse=0;//反转后的数字
inttemp=0;
temp=n;
while(temp!=0)
{
rem=temp%10;
reverse=reverse*10+rem;
temp/=10;
}
if(reverse==n)
{
cout<<"回文数:"<<n<<endl;
}
else
{
cout<<"您输入的不是回文数"<<endl;
}
}
int_tmain(intargc,_TCHAR*argv[])
{
while(true)
{
cout<<"请您输入一个数字:"<<endl;
intj;
cin>>j;
if(cin.fail())
{
cout<<"ERROR"<<endl;
cin.clear();
cin.sync();
}
try
{
reverse_num(j);
}
catch(...)
{
cout<<"ERROR!!";
}
}
/************************************************************************/
/*cin.fail()cin.clear()cin.sync(),后两个一般一起使用相当一cin.ingore()的效果*/
/************************************************************************/
/*
inta;
cin>>a;
if(cin.fail())//验证输入的类型是否匹配,例如这里是inta;如果输入一个字符,就会报错
{
cin.clear();//清除错误标志,重置流的状态
cin.sync();//清楚缓存区
intb;
cin>>b;//如果不清除缓存区,这个b将不会被读入,因为每次都是从缓存区读取,不清除读取的还是原来的内容
cout<<b<<endl;
}
*/
/************************************************************************/
/*cin与cin.get()的区别:cin会自动忽略回车符号,cin.get()不会忽略*/
/************************************************************************/
//chark=cin.get();
//cout<<k<<endl;
//charm=cin.get();
//cout<<m<<endl;
//因为cin.get()不会自动忽略了回车符号,当我们输入第一个字符后,我们会输入一个回车符号,相当于m输入的就是回车符
getchar();
//getchar();
return0;
}
其他回答
暂无其它回答!