C 使用递归检查字符串是否回文,即使代码的逻辑似乎正确,也不起作用

C 使用递归检查字符串是否回文,即使代码的逻辑似乎正确,也不起作用,c,string,algorithm,recursion,palindrome,C,String,Algorithm,Recursion,Palindrome,这是我使用递归检查给定字符串是否为回文的代码: #include<stdio.h> #include<string.h> #include<stdbool.h> bool ispalindrome(char A[],int low,int high) { if (low>=high) return true; else { return ((A[low] == A[high]) && is

这是我使用递归检查给定字符串是否为回文的代码:

#include<stdio.h>
#include<string.h>
#include<stdbool.h>

bool ispalindrome(char A[],int low,int high) {
    if (low>=high)
        return true;
    else {
        return ((A[low] == A[high]) && ispalindrome(A,low+1,high-1));
    }
}

int main() {
    char A[100];
    bool result;
    int len;
    printf("Enter the string");
    scanf("%[^\n]%*c", A);
    len=strlen(A);
    result=ispalindrome(A,0,len-1);
    if(result==true)
        printf("Yes");
    else
        printf("No");
    return 0;
}
#包括
#包括
#包括
bool ispalindrome(字符A[],整数低位,整数高位){
如果(低>=高)
返回true;
否则{
返回((A[low]==A[high])&&isAlindrome(A,low+1,high-1));
}
}
int main(){
chara[100];
布尔结果;
内伦;
printf(“输入字符串”);
scanf(“%[^\n]%*c”,A);
len=strlen(A);
结果=IsAlindrome(A,0,len-1);
如果(结果==真)
printf(“是”);
其他的
printf(“否”);
返回0;
}

这里的问题是什么?代码逻辑似乎是正确的,但程序正在为回文字符串打印“否”。

我编辑了您的问题以修复缩进,并添加了缺少的右大括号,我想这是在您的代码中。你能提供你得到错误结果的输入吗?我觉得你的逻辑是正确的。你确定这不是别的吗?如前所述,给出了有效的例子和无效的例子。@trincot。谢谢你,先生。在geenral中,“level”,“abba”的输出不正确,所有回文输入都不正确output@PRIYANKACHETTRI可能在要排除的字符中缺少添加«\r»。