- 50
- 0
- 约1.14千字
- 约 3页
- 2017-06-07 发布于重庆
- 举报
C语言回文数猜想
2.7.1.1 练习1 回文数的猜想输入一个数一个数,加上是这个数的倒序数,得出结果判断是否为回文数,是就退出,否则返回第2步骤回文数:1336331、9559典型:输35714235是一个回文数程序解答过程:设计出各函数功能,便于调用编码,解答各函数功能:输入数据:int input(void)对数据取逆序:int reverse(int data)判断回文数:int ispalin(int data)溢出判断: int isover(int data//palin.c#includestdio.hint input(void){int data=-1;//防止赋值失败?for(;;){scanf(%d,data);if(data=10)//使得输入的数字不小于10break;scanf(%*[^\n]);//取得除了换行\n之外的所有字符,抛掉scanf(%*c);//抛掉换行\n}return data;}int reverse(int data){int res=0;for(;data0;data=data/10)//取得data的的逆序res=res*10+data%10;//data%10取得data最后一位数字return res;}int ispalin(int data){return data==reverse(data);}int isover(int data){return data=0||reverse(data)=0;//当data大小越界,即超过2^31-1,变成负数}int main(){int data=input();int i;for(i=0;!isover(data);data+=reverse(data)){if(!ispalin(data))printf([%d]:%d+%d=%d\n,++i,data,reverse(data),data+reverse(data));else{printf(Palin:%d\n,data);return 0;}}printf(Can not find Palin!\n);return 0;}知识:unsigned int:2^32-1 int : 2^31-1超过了最大值会越界,越界的数会变成负数知识盲点:scanf(“%*c[^\n]”);scanf(“%*c”);%*c :读取出来,再扔掉,即是把缓冲区清除掉,c是格式控制符,控制把字符类型的输入清除[^\n] 输入的字符除了换行\n之外的集合1的解析:将所有不等于\n的字符扔掉2的解析:将输入的一个字符去掉
您可能关注的文档
- 高级混凝土工试卷.doc
- c证面试心理健康辅导活动课设计.doc
- 高级保育员练习题.doc
- C语言(20次).doc
- 高考专题之带电粒子在复合场中的运动.doc
- 高考前一个月策略.doc
- 高考专题演练4.doc
- c语言08考题2.doc
- c语言7编译预处理.doc
- 高考化学专题复习离子共存习题以及答案.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
原创力文档

文档评论(0)