0%

编写C语言控制台程序时,如果使用scanf()函数作为输入,往往需要解决非法输入的问题。比如以下情况:

1
2
3
printf("输入一个0~9的整数a\n");
int a;
scanf("%d", &a);

此时可能出现如下几种典型的非法输入:

  • 123
  • 123xyz
  • xyz123

对于第一种,使用if判断a的范围是否满足要求即可。第二种和第三种则较为复杂,因为其中涉及到了字符的输入。第二种情况,scanf()会将123存入a,而xyz留在了输入缓冲区;第三种情况,scanf()不会读取任何数据,xyz123都留在了输入缓冲区。
如果只是判断这一次输入的合法性,可以利用scanf()的返回值。如果输入有效,scanf()会返回1,否则返回0。由此可以排除scanf()无法读取的输入。

阅读全文 »

Power of Logic是一个推理游戏,玩家的任务是用尽可能少的时间和步骤解开密码序列。当你输入不同的数字序列时,系统会给出提示,指示你输入的数字序列中,有多少个数字正确但位置错误,又有多少个数字和位置都正确。可惜这一游戏已经不再维护和更新了,最新的iOS设备上甚至无法下载。不过考虑到它的核心逻辑并不复杂,博主用C语言写了一个低配版。

运行效果如图:

下面附上最终版本的代码。

阅读全文 »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment