第八次课大纲

1、总结第二次作业出现的问题

  在第二次作业中,很多学生挂在scanf函数中无法自拔,呃呃呃,稍微百度下不出来?

  scanf函数是格式化输入函数,所谓格式化输入,你得符合它的格式才行。

  scanf("%d %d",&a,&b); //双引号内用空格间隔,则在终端中也必须以空格间隔输入两个数值

  scanf("%d,%d",&a,&b); //双引号内用逗号间隔,则在终端中也必须以逗号间隔输入两个数值(更要注意中英文逗号!)

  关于%s的使用参照听课笔记:字符串2

2、调试程序的方法:

  1)Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),使用电脑上的5.0以上的版本。编辑完代码保存时选择保存为C源代码,C和C++的编译规则还是不一样的:

  2)编译程序的时候要先编译再运行,不要使用编译运行键。目的就是要看到编译错误和警告提示,这是调试最重要的信息。如何利用这些错误提示信息:

  • 双击错误信息,从该行开始往前检查。
  • 读懂错误信息,不认识的单词自行查找,查找的时候使用计算机专用词典。
  • 如何检查方法之一就是注释掉其他行代码,一行一行的编译运行,方法之二使用printf确认你每一行结果是正确的。
  • 复制错误信息,粘贴到百度!

  3)devc++ 调试(debug),自行查找。

3、讲解swap函数(P226-P229)

  修改swap函数:

  (1)声明一个函数swap,返回值是void类型,形参是两个int类型变量a,b:

    void swap(int a,int b);

  (2)声明函数swap,返回值是void类型,形参是两个指向整型的指针变量p,q:

     void swap(int *p,int *q);

  (3)声明函数swap,返回值是指向整型的指针,形参是两个指向整型的指针变量p,q:

    int * swap(int *p,int *q);

 ------------------------------------------------------------------------------------------------------------

  在第七次课结束时写swap函数,为了减少课上时间,要求写作业。结果作业写了,但是没有思考,对于void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?两个问题,回答的时候只是按照课本上的结论回答,并没有自己的验证过程,所以将这两部分加入第二次作业中,重新提交。

  今天两个学时,第一个学时首先写swap函数,以这个函数为例子讲解如何调试程序。而另外一个学时在对swap函数进行修改(欠思考)。后一个学时效果没有第一个学时好,目前比较理想的状态是一个学时写、讲解一个程序。

posted on 2017-03-22 16:03  niuxiaoxia  阅读(220)  评论(0编辑  收藏  举报

导航