// 常见算法.cpp : 定义控制台应用程序的入口点。
//回文
#include "stdafx.h"
#include <iostream>
using namespace std;
void reverse_num(int& n)
{
int rem = 0;//用于表示余数
int reverse = 0;//反转后的数字
int temp = 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(int argc, _TCHAR* argv[])
{
while (true)
{
cout<<"请您输入一个数字:"<<endl;
int j;
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()的效果 */
/************************************************************************/
/*
int a;
cin>>a;
if (cin.fail())//验证输入的类型是否匹配,例如这里是int a;如果输入一个字符,就会报错
{
cin.clear(); //清除错误标志,重置流的状态
cin.sync();//清楚缓存区
int b;
cin>>b; //如果不清除缓存区,这个b将不会被读入,因为每次都是从缓存区读取,不清除读取的还是原来的内容
cout<<b<<endl;
}
*/
/************************************************************************/
/* cin 与cin.get()的区别:cin会自动忽略回车符号,cin.get()不会忽略 */
/************************************************************************/
//char k = cin.get();
//cout<<k<<endl;
//char m = cin.get();
//cout<<m<<endl;
//因为cin.get()不会自动忽略了回车符号,当我们输入第一个字符后,我们会输入一个回车符号,相当于m输入的就是回车符
getchar();
//getchar();
return 0;
}
C++基础算法之 回文数
最新推荐文章于 2024-08-27 16:45:27 发布