当年看郝斌讲解的C语言,回文数,哈哈,后续会分享我当年跟着他学习的数据结构代码
//2013-7-21 10:54//功能:如何求一个回文数? (84 while用法举例)//知识点:c语言中除法(/)和求余(%)的用法 及while用法//技能: 求回文数的核心代码掌握 学会试数,像计算机一样去执行,别管为什么(看懂一个看不懂的程序的不二法门)/*# include <stdio.h>int main(){ int val; //val存放一个回文数 int sum = 0; printf("please input one 回文数:\n"); scanf("%d" , &val); while (val) { sum = sum * 10 + val % 10; val /= 10; } if(val == sum) { printf("是回文数\n"); } else { printf("不是回文数\n"); } return 0;} 运行结果均为: 不是回文数 原因: 用户键入的数字存放在val中,但程序最终的val已经改变, 所以原来键入数字逆序后的数字sum肯定不与已经改变后的val相等 改正:提供一个变量m, 将键入的数字val赋值给m ,让m 去执行程序最终生成sum, 而初次键入的数字扔存放在val里,不变 然后两者sum,val 进行大小比较 */# include <stdio.h>int main(){ int val; //val存放一个回文数 int sum = 0; int m; printf("please input one 回文数:\n"); scanf("%d" , &val); m = val; //这里千万不能写成m == val ,问题同上 while (m) { sum = sum * 10 + m % 10; m/= 10; } if(val == sum) { printf("是回文数\n"); } else { printf("不是回文数\n"); } return 0;}//练习#include <stdio.h>int main() { int val; int fin = 0; int n; printf("请输入一个回文数:\n"); scanf("%d",&val); n = val; while(n) { fin = fin * 10 + n % 10; n /= 10; } if(val == fin) { printf(val + "是回文数"); } else { printf(val + "不是回文数"); } return 0;}//练习2#include <stdio.h>void main() { int val; int fin = 0; int m; printf("请输入一个回文数:\n"); scanf("%d", &val); m = val; while(m) { fin = fin * 10 + m % 10;] m /= 10; } if(val == fin) { printf(val + "是一个回文数"); }else{ printf(val + "不是一个回文数!"); }}
我等你用尽了所有的哀伤;而你眼中却有我所不懂的凄凉。