c言語文字列は回文ではないか


 #include<stdio.h> 
 
#include<string.h>
int main()
{
    char str[30]={0};
    int i,a,b=0,c=0;
    gets(str);
    a=strlen(str);
    for(i=0;i<a;i++)//abcddcba
    {
        if(str[i]==str[a-1-i])
            b++;
        else
            c++;
    }
    if(b>=a/2)
        printf("Yes");
        if(c>0)
        printf("No
");
    return 0;
}