设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4609|回复: 21
打印 上一主题 下一主题

[有事请教] 求教C语言以及电路题。。。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
1
发表于 2010-11-3 22:14:42 | 显示全部楼层
不要当成数字
当成char[]字符串就方便多了

点评

表示电路图看不懂 +1  发表于 2010-11-3 22:15
RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
2
发表于 2010-11-5 18:16:48 | 显示全部楼层

  1. #include <stdio.h>
  2. #define BUF 500
  3. char input[BUF+1];

  4. int main(void)
  5. {
  6.     while (scanf("%s", input) != EOF)
  7.     {
  8.         int len = 0, i = 0;
  9.         char flag = 0;
  10.         while (input[len++] != "\0"); /* Get length of the number(string) */
  11.         for (i = 0; i <= len - i - 1; ++i)
  12.             if (input[i] != input[len - i - 1])
  13.             {
  14.                 printf("Not a hui wen\n");
  15.                 flag |= 1;
  16.                 break;
  17.             }
  18.         if (!flag)
  19.             printf("Hui wen\n");
  20.     }
  21. }
复制代码

点评

看不太懂…求解释…  发表于 2010-11-7 12:08
RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
3
发表于 2010-11-7 12:13:43 | 显示全部楼层

  1. #include <stdio.h>
  2. #define BUF 500
  3. char input[BUF+1];

  4. int main(void)
  5. {
  6.     while (scanf("%s", input) != EOF) /* 循环: 扫入字符串 */
  7.     {
  8.         int len = 0, i = 0;
  9.         char flag = 0; /* 回文记号 0: 回文 1: 非回文 */
  10.         while (input[len++] != "\0"); /* 求出字符串长度 */
  11.         for (i = 0; i <= len - i - 1; ++i) /* 回文比对 只比对到中间 */
  12.             if (input[i] != input[len - i - 1]) /* 非回文 */
  13.             {
  14.                 printf("Not a hui wen\n");
  15.                 flag |= 1;
  16.                 break;
  17.             }
  18.         if (!flag) /* 回文 */
  19.             printf("Hui wen\n");
  20.     }
  21. }
复制代码

点评

初学人士表示还是看不懂。。。核心思维完全看不懂。。。另外input和EOF是嘛玩意?  发表于 2010-11-8 12:29
RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
462 小时
注册时间
2007-7-30
帖子
643
4
发表于 2010-11-8 20:40:12 | 显示全部楼层

  1. #include <stdio.h>
  2. #define BUF 500
  3. char input[BUF+1]; /* 宣告字符串 */
  4. /* 因为C语言中没有string类型 须以char(字符)类型宣告数组 */

  5. int main(void)
  6. {
  7.     while (scanf("%s", input) != EOF) /* 循环: 扫入字符串 將輸入的字符一一掃入input數組 */
  8.     {
  9.         int len = 0, i = 0;
  10.         char flag = 0; /* 回文旗标 0: 回文 1: 非回文 */
  11.         while (input[len++] != "\0"); /* 求出字符串长度 因为char数组末端会放置'\0' 字符 以表示字符已结束 故以此为依据找出长度 */
  12.         for (i = 0; i <= len - i - 1; ++i) /* 回文比对 只比对到中间 */
  13.             if (input[i] != input[len - i - 1]) /* 非回文 */
  14.             {
  15.                 printf("Not a hui wen\n");
  16.                 flag |= 1; /* 设置旗标为非回文 */
  17.                 break;
  18.             }
  19.         if (!flag) /* 若回文 */
  20.             printf("Hui wen\n");
  21.     }
  22. }
复制代码
为啥用字符而不用整数值呢?
因为整数值(int)有长度的限制
导致能读入的数字有大小限制

如果把每个数字都当成字符
就能自由的控制长度(也比较符合回文这关于语文的嘛~~)

不懂可以多问~~
RGE这万年大坑 啥时填起来@@

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-1 07:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表