1.5.3行计数

1-9的练习我看了习题解答之后,确实震惊了一下。书上的逻辑严谨而且很巧妙。
他的思路是
本次输入与上一次输入进行判断。如果本次输入是空格判断上一个输入是不是空格。
if(c != ‘ ’)如果输入字符的不是空格。
putchar(c);就输出这个字符。
if(c == ‘ ’)如果输入的字符是空格的情况下。
if(lastc != ‘ ’)如果上一个输入的字符不是空格。
putchar(c);就输出这个字符。反之如果上一个输入的是空格则不进行动作。
if—else是二者选一只进行一次动作,有时候if并列会造成上一个if动作后达成下一个if语句的判断条件从而进行动作。
习题解答的最后一个例子在我看来真是达到了艺术的水准。
if(c !=‘ ’ || lastc !=‘ ’)
putchar(c);
lastc = c;
逻辑或||上一条语句为假则执行下一条语句如果前一条语句为真则不执行下一条语句。简单来说就是选其一。
如果输入不是空格则满足第一条直接执行输出。
如果输入是空格,第一条判断为假则执行第二条。
如果上一个字符不是空格则输出。
如果上一个字符是空格则不动作。

你可能感兴趣的:(1.5.3行计数)