判斷迴文確實是一個寫爛的代碼了,建立一個標誌位flag即可,但是早上活躍一下頭腦,複習一下
題目
題目描述:給出一個長度不超過1000的字串,判斷它是不是迴文(順讀,逆讀均相同)的。輸入:輸入包括一行字串,其長度不超過1000。輸出:可能有多組測試資料,對於每組資料,如果是迴文字串則輸出"Yes!”,否則輸出"No!"。範例輸入:hellollehhelloworld範例輸出:Yes!No!
數組實現
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char str[1001];int len, flag, i;while(scanf("%s",str) != EOF){flag = 1;len = strlen(str);for(i = 0; i < len/2; i ++){if(str[i] != str[len - 1 -i]){flag = 0;break;}}if(flag)printf("Yes!\n");elseprintf("No!\n");}return 0;}
指標操作
#include <stdio.h>#include <stdlib.h>#include <string.h> void isSymmetrical(char *str){ char *begin, *end; int flag, len = strlen(str); for (begin = str, end = str + len - 1, flag = 1; begin <= end; begin ++, end --) { if (*begin != *end) { flag = 0; break; } } if (flag) printf("Yes!\n"); else printf("No!\n");} int main(void){ char str[1001]; while (gets(str)) { isSymmetrical(str); } return 0;} /************************************************************** Problem: 1192 User: wangzhengyi Language: C Result: Accepted Time:10 ms Memory:912 kb****************************************************************/