小丸子0072 2021-12-08 21:31 采纳率: 68.8%
浏览 20
已结题

这个代码怎么输出不了yes?看下哪错了

任务描述:对于给定的字符串,判断是否为回文串。所谓的回文串是指顺着读和反着读都一样的文本。例如,“雾锁山头山锁雾”、“天连碧水碧连天”、“abcdedcba”等。要求编写一个非递归函数实现判断给定的字符串是否为回文串的功能,主调函数中实现字符串的输入和判断结果的输出。
输入:给定的字符串仅包含英文字符,字符串的长度不超过100,串中字符为大写或小写字母。
输出:如果是回文串则输出YES,否则输出NO。
输入举例:
level
输出举例:
YES

程序代码:#include <stdio.h>
#include <string.h>
int panduan(char str[])
{
int i=0,j;
int len=strlen(str);
j=len-1;
while(i<len/2)
{
if(str[i]==str[j])
{
i++;
j--;
}
else if(str[i]!=str[j])
{
printf("NO");
break;
}
else if(str[i+1]==str[j]&&str[i+2]==str[j])
{
printf("YES");
}
}
}
int main()
{
char str[100];
gets(str);
panduan(str);
return 0;
}

  • 写回答

1条回答 默认 最新

  • 关注

    代码修改如下:

    #include <stdio.h>
    #include <string.h>
    int panduan(char str[])
    {
        int i=0,j;
        int len=strlen(str);
        j=len-1;
        while(i<j) //i<len/2
        {
            if(str[i]==str[j])
            {
                i++;
                j--;
            }
            else //if(str[i]!=str[j])
            {
                printf("NO");
                return 0;
            }
        }
        printf("YES");
        return 1;
    }
    int main()
    {
        char str[100];
        gets(str);
        panduan(str);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号