/*必须把huiwen函数放在main函数前边,否则会出现编译错误。因为程序只能向前查找函数*/
char huiwen (char *s) {
int i = 0, j;
while (s[i] != 0) {
i++;
}
if (i & 1) { /*判断i的奇偶性,就是判断i的最后一个二进制位是否为0*/
for (j = 0; j < (i - 1) / 2; j++) { /*循环次数问题*/
if (s[j] != s[i - j - 1]) break;
}
/*循环后再判断*/
return (j == (i - 1) / 2) ? 'Y' : 'N'; /*字符常量加单引号*/
} else {
for (j = 0; j < i / 2; j++) { /*循环次数问题*/
if (s[j] != s[i - j - 1]) break;
}
/*循环后再判断*/
return (j == i / 2) ? 'Y' : 'N'; /*字符常量加单引号*/
}
}
main () {
char s[1000];
scanf ("%[^\n]", s); /*%s不能接收空格*/
printf ("%c\n", huiwen (s));
}
追问非常感谢老师的详细解答
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/e1fe9925bc315c60976eb33d86b1cb134854776d?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答题目是什么
追问![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/cdbf6c81800a19d80e655ed738fa828ba71e46fa?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
之前发错了😣