您當前的位置:首頁 > 體育

為什麼除錯過程中下面兩行程式碼被跳過?

作者:由 匿名使用者 發表于 體育時間:2021-12-06

為什麼除錯過程中下面兩行程式碼被跳過?匿名使用者2021-12-06 19:25:23

方便各位大佬看,提問裡面刪了暫時無關的東西,原始碼如下:

#include

#include

#define MAXN 20

typedef enum {false, true} bool;

bool palindrome( char *s );

int main()

{

char s[MAXN];

scanf(“%s”, s);

if ( palindrome(s)==true )

printf(“Yes\n”);

else

printf(“No\n”);

printf(“%s\n”, s);

return 0;

}

/* 你的程式碼將被嵌在這裡 */

bool palindrome( char *s )

{

char *p;

p=s;

for (;*p != ‘\0’;p++)

p——;

for (;*s == *p;s++,p——)

if (p-s==0||p-s==1)

return true;

else

return false;

}

為什麼除錯過程中下面兩行程式碼被跳過?知乎使用者2021-12-07 21:06:21

你的第一個for目的是把指標p移動到字串末尾的‘\0’,很好理解。

不過為什麼是*p!=‘\0’?不是*p讀到‘\0’才退出嗎?

幫你把問題下的程式碼編輯到程式碼塊裡了。

標簽: char  true  bool  palindrome  include