📜  C |输入和输出|问题8(1)

📅  最后修改于: 2023-12-03 15:13:47.580000             🧑  作者: Mango

C |输入和输出|问题8

问题描述

请编写一个程序,确定输入的字符串是否为回文,即正着读和倒着读都一样。如果是回文,输出 "YES",否则输出 "NO"。

输入样例
12321
输出样例
YES
解题思路

回文是指正着和倒着读都一样的字符串,我们只需要将输入的字符串逆序后,和原字符串比较是否相等即可。

代码实现
#include <stdio.h>
#include <string.h>

int main() {
    char str[100];
    scanf("%s", str);
    int len = strlen(str);
    for (int i = 0; i < len/2; i++) {
        if (str[i] != str[len-i-1]) {
            printf("NO");
            return 0;
        }
    }
    printf("YES");
    return 0;
}
代码说明
  1. 定义字符数组 str 存储输入的字符串。

  2. 通过 scanf 函数输入字符串 str

  3. 计算字符串长度。

  4. 依次判断 str 的第 $1$ 个字符与倒数第 $1$ 个字符、第 $2$ 个字符与倒数第 $2$ 个字符……第 $n$ 个字符与倒数第 $n$ 个字符是否相等,其中 $n$ 为字符串长度的一半。

  5. 如果字符串不是回文,输出 "NO",并结束程序。

  6. 如果字符串时回文,输出 "YES",并结束程序。

代码测试
输入:12321
输出:YES

输入:abcedf
输出:NO