C程序:检查一个数字是否为Palindrome
本篇攻略将介绍如何编写一个C程序,用于检查一个数字是否为回文数,即从左往右和从右往左读取数字都一样。首先我们来看一下这个程序的代码:
#include <stdio.h>
int main()
{
int n, reverse=0, rem, originalNum;
//用户输入整数
printf("请输入一个整数: ");
scanf("%d", &n);
//保存原始数字
originalNum = n;
// 反转整数
while (n != 0)
{
rem = n % 10;
reverse = (reverse * 10) + rem;
n /= 10;
}
// 检查反转后的数字与原始数字是否相等
if (originalNum == reverse)
printf("%d 是回文数", originalNum);
else
printf("%d 不是回文数", originalNum);
return 0;
}
接下来,我们对程序中每一行的代码进行详细的讲解:
#include <stdio.h>
这一行代码表示把stdio.h这个标准输入输出库包含到程序中,这样就可以使用该库中定义的函数。
int main()
这是C程序的入口函数,整个程序的执行从这里开始。main函数前面的int
表示main函数的返回值类型是整型,()
表示该函数不接受任何参数。
int n, reverse=0, rem, originalNum;
这一行代码声明四个整型变量:原始数字originalNum、反转数字reverse、查询余数rem和用户输入的整数n。其中,变量reverse被初始为0,原始数字originalNum保存用户输入的原始数字。
printf("请输入一个整数: ");
scanf("%d", &n);
这一行代码向用户请求输入要查询的数字,并把用户输入的值保存到变量n中。
originalNum = n;
这一行代码把用户输入的数字n赋值给变量originalNum,以便在后面检查反转前后的值。
while (n != 0)
{
rem = n % 10;
reverse = (reverse * 10) + rem;
n /= 10;
}
这个while循环用于反转数字n。在每次循环中,余数(n % 10)被保存在rem变量中,然后反转数值(reverse)乘以10并加上余数(reverse = (reverse * 10) + rem)。我们还将n除以10以便在下一个循环中处理剩余的数字。
if (originalNum == reverse)
printf("%d 是回文数", originalNum);
else
printf("%d 不是回文数", originalNum);
这个if-else语句用于检查反转后的数字和原始数字是否相同。如果两个数字相同,则该数字是回文数,程序就输出这个数字是回文数。如果不相同,则该数字不是回文数,程序就输出数字不是回文数。
接下来,我们来看一个具体的示例说明该程序的具体使用方法。例如我们要查询数字1221,我们按照如下步骤操作:
-
打开开发环境,创建一个新的C文件
-
把以上的C程序复制到C文件中
-
编译运行程序
-
程序提示输入一个整数,我们输入数字1221
-
程序输出“1221是回文数”,这说明1221是回文数,从左往右读和从右往左读都是相同的。
另外一个示例,我们查询数字1234,按照上述步骤,
-
打开开发环境,创建一个新的C文件
-
把以上的C程序复制到C文件中
-
编译运行程序
-
程序提示输入一个整数,我们输入数字1234
-
程序输出“1234不是回文数”,这说明1234不是回文数,从左往右读和从右往左读不是相同的。
这样,我们就可以使用该程序检查任何数字是否为回文数。