葛成功之路 2019-12-04 16:15 采纳率: 77.8%
浏览 336
已采纳

请问我的输出结果只有no,还有如何实现字符串的多组输入?

题目描述
输入一个长度不超过 10000 个字符的字符串,判断字符串是否为回文,若是则输出 "YES", 否则输出 "NO"。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。

输入描述
输入一个长度不超过 10000 个字符的字符串

输出描述
若是回文字符串则输出 "YES", 否则输出 "NO"

样例输入
level

1234567

样例输出
YES

NO

#include<string.h>
#define N 10000
int main()
{
    int i,m,n,k;
    char st1[N];
    char st2[N];
    memset(st1,0x0,N);
    memset(st1,0x0,N);

    {
        gets(st1);
        i = strlen(st1);
        k=i;
        for (n=0;i>0;)
    st2[n++] = st1[--i];
    st2[n] = '\0';
 }
 {
if(st2[n]==st1[i])
printf("YES\n");
else
printf("NO\n");
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

  • qtchen_1988 2019-12-04 16:34
    关注

    你的代码很乱,帮你改了,还有

    (https://ask.csdn.net/questions/995800 "") 如果解决了请采纳一下。

    #include<string.h>
    #include<stdlib.h>
    #include<stdio.h>
    
    #define N 10000
    int main()
    {
        int i,n,flag = 1;
        char st1[N];
        memset(st1,0x0,N);
        gets(st1);
        n = strlen(st1);
        for(i=0;i < n/2;i++)
            if(st1[i] != st1[n-1-i])
            {
                flag = 0;
                break;
            }
        if(flag != 0)
            printf("YES\n");
        else
            printf("NO\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?