赞 | 0 |
VIP | 40 |
好人卡 | 2 |
积分 | 1 |
经验 | 10932 |
最后登录 | 2016-5-17 |
在线时间 | 462 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 462 小时
- 注册时间
- 2007-7-30
- 帖子
- 643
|
- #include <stdio.h>
- #define BUF 500
- char input[BUF+1]; /* 宣告字符串 */
- /* 因为C语言中没有string类型 须以char(字符)类型宣告数组 */
- int main(void)
- {
- while (scanf("%s", input) != EOF) /* 循环: 扫入字符串 將輸入的字符一一掃入input數組 */
- {
- int len = 0, i = 0;
- char flag = 0; /* 回文旗标 0: 回文 1: 非回文 */
- while (input[len++] != "\0"); /* 求出字符串长度 因为char数组末端会放置'\0' 字符 以表示字符已结束 故以此为依据找出长度 */
- for (i = 0; i <= len - i - 1; ++i) /* 回文比对 只比对到中间 */
- if (input[i] != input[len - i - 1]) /* 非回文 */
- {
- printf("Not a hui wen\n");
- flag |= 1; /* 设置旗标为非回文 */
- break;
- }
- if (!flag) /* 若回文 */
- printf("Hui wen\n");
- }
- }
复制代码 为啥用字符而不用整数值呢?
因为整数值(int)有长度的限制
导致能读入的数字有大小限制
如果把每个数字都当成字符
就能自由的控制长度(也比较符合回文这关于语文的嘛~~)
不懂可以多问~~ |
|