C程序 检查一个数字是否为 Palindrome

  • Post category:C

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,我们按照如下步骤操作:

  1. 打开开发环境,创建一个新的C文件

  2. 把以上的C程序复制到C文件中

  3. 编译运行程序

  4. 程序提示输入一个整数,我们输入数字1221

  5. 程序输出“1221是回文数”,这说明1221是回文数,从左往右读和从右往左读都是相同的。

另外一个示例,我们查询数字1234,按照上述步骤,

  1. 打开开发环境,创建一个新的C文件

  2. 把以上的C程序复制到C文件中

  3. 编译运行程序

  4. 程序提示输入一个整数,我们输入数字1234

  5. 程序输出“1234不是回文数”,这说明1234不是回文数,从左往右读和从右往左读不是相同的。

这样,我们就可以使用该程序检查任何数字是否为回文数。