2010.4.8
看书自学C语言已有半月,今天上编程论坛(BCCN)第一次试着解决别人帖子里的疑问,结果发现自己在编写程序时的一些问题。
首先,是定义变量的问题。
平时总是照着书上的例子编写程序,所以定义变量总是习惯性的用“int”(书上的例子多数是数字方面的处理,其中又以整数型居多)。可今天需要对用户输入的字符进行判断,变量应该定义为“char”才对。可惜,自己开始没看出来,到了编译出错才发现。
其次,if语句的用法自己还没有记熟。
if后的条件判断语句是不用加分号的,这个我记得,不过我却把紧跟着的程序代码(只有一句)加上了花括号。虽然加上了花括号并没有错(如果后面跟着多个语句就应该加上),但是在程序编译出错时,我把花括号当作错误去掉了,所以总归来说,对于if语句的用法我还不是十分熟悉。
最后,也是花费我最多时间才发现的问题,引号用错了。
进行字符常量的比较时,字符应该是用单引号,但是我用成了双引号。这应该也是习惯性错误。
所幸最后问题都被发现和解决了,看来学习编程确实要多上机实际操作——尤其是不对比着书本范例自己编写程序。因为学习编程不仅仅要头脑中理解透彻,手上的活儿也要多多练习养成习惯。
这里也把自己编写程序中,出的错误、绕的弯子记录下来,以提醒自己在今后避免这些错误。
把这个程序粘贴过来,纪念一下这个虽然简单但却是我第一个脱离书本自己编写的程序。
- #include <stdio.h>
- int main (void)
- {
- char x;
- printf ("It's so hot today, isn't it?(Y/N)/n");
- scanf ("%c", &x);
- if (x == 'y' || x=='Y')
- printf ("Let's go swimming./n");
- else if (x == 'n' || x=='N')
- printf ("Go to sleep./n");
- else
- printf ("Are you kidding me?/n");
- return 0;
- }
注:在测试程序过程中,我发现输入“yes”或“no”时,效果等同于输入“y”或“n”。