C语言回文数
当年看郝斌讲解的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 回文数: "); scanf("%d" , &val); while (val) { sum = sum * 10 + val % 10; val /= 10; } if(val == sum) { printf("是回文数 "); } else { printf("不是回文数 "); } 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 回文数: "); scanf("%d" , &val); m = val; //这里千万不能写成m == val ,问题同上 while (m) { sum = sum * 10 + m % 10; m/= 10; } if(val == sum) { printf("是回文数 "); } else { printf("不是回文数 "); } return 0; } //练习 #include <stdio.h> int main() { int val; int fin = 0; int n; printf("请输入一个回文数: "); 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("请输入一个回文数: "); scanf("%d", &val); m = val; while(m) { fin = fin * 10 + m % 10;] m /= 10; } if(val == fin) { printf(val + "是一个回文数"); }else{ printf(val + "不是一个回文数!"); } }