这两道题是整本书中出现的第一道和第二道 UVa 的题目。

先看 UVa272,这里需要注意两点,

  • getchar => 这里之所以使用 getchar,是因为如果使用 scanf 来读取输入的话,那么,像 TAB、空格这样的字符就会被当成分隔符而无法读入;
  • EOF 是什么?EOF 表示一个文件的结束,如果是读取一个文件,那么,读取到文件尾时,就会读取到 EOF。更详细的内容可以看:https://stackoverflow.com/questions/4358728/end-of-file-eof-in-c。我们在使用命令行的时候,可以使用 Ctrl + D(在 Linux 系统下) 来手动触发 EOF。

额外说一句,第 46 页,

如果用“scanf("%d", &n)”读取整数 n,则要是在输入 123 后多加了一个空格,用 getchar 读取的将是这个空格,

这里的意思是先调用 scanf,然后调用 getchar,并不是上来就只调用 getchar。

再看 UVa10082,思路也是一样,毕竟是开篇的题目,所以比较简单。

好,那么这两道题所用到的知识点就是这个 getchar 了。

然后,下面是代码时间,写代码的时候,注意一下题目的输入数据的格式即可。