自学C语言-20211028

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了自学C语言-20211028脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 CPRimerPlusV6这本书的学习经历总是来说还是比较令人愉悦的,一些课后习题和编程练习尽量不依靠答案完成,有些比较难的题目甚至能花费我天的时候去钻研,再有些特难的题目,我就先按照答案把代码打一遍有个初步了解,然后再自己打一遍,有时候头脑思维发散一些还能对习题要求进行再拓展,其他内容基本上还好,但是文本操作的内容有些忘记了我觉得过后还是需要再复习一下,毕竟操作文本储存数据也算计算机的实用性体现。有些C99的内容由于我的IDE是VS2010支持不了,所以也是跳过没学了。

      CPrimerPlusV6目前学到第十七章-高级数据表示,据说这是数据结构的内容,数据结构的书《数据结构与算法分析-c语言描述》我只看了几眼觉得很难就先放一边了,现在在琢磨这个ADT抽象数据类型-17.3,我感觉通过这个习题我发现自己的指针基础还是很薄弱。我本来计划将原本的List(指向Node结构类型的指针变量)更改成List(新建立的list结构类型的变量,list结构类型包含指向Node结构首项的指针、指向Node结构尾项的指针、Node结构计数),运行后链表只能保存输入的最后两项内容,琢磨了一下午都没搞懂,我只能改回与书本一致的方法,等以后指针内容学习扎实再说。我现在又想在Node结构中添加一个记录当前项目数的标签,这个标签添加后可以读取存储的项数。

问题(solved):我在main函数中建立了一个指针变量指向(待保存数据的指针变量所指向的Node结构类型),通过while循环让新建立的指针变量查找链表的最后一项,然后读取该项所记录的项目数以显示总项目数。但是这几行我新添加的代码总是造成意外停止。

List pscan=man;

while(pscan->next)

        pscan=pscan->next;

printf("Database contains %d students.n",(pscan->index+1);

20211028解决了:更改为建立一个2级指针变量指向一个指向(待保存数据的指针变量所指向的Node结构类型)的指针的指针。

List *pscan=&man;

while((*pscan)->next)

        *pscan=(*pscan)->next;

printf("Database contains %d students.n",((*pscan)->index+1);

问题(solved):这下能顺利运行了,但发现一个问题,记录的数据项数错误,有重复,非递增,我觉得应该是添加数据的AddStudent函数有问题。

short AddStudent(Student student,List *plist){    int count=0;    List ptemp;    List pscan=*plist;    if(!(ptemp=(List)calloc(1,sizeof(Node))))        return 0;    ptemp->student=student;    ptemp->next=NULL;    if(!pscan)    {        *plist=ptemp;        (*plist)->index=0;    }    else    {        while(pscan->next)        {            //count=pscan->index;//错,应放在后面一步            pscan=pscan->next;

            count=pscan->index;//对,应放在后面一步        }        pscan->next=ptemp;        pscan->next->index=count+1;//如改成++应放在count前面    }return 1;}

经过探索,pscan进入链表查找最后一项的过程中,局部变量count存储链表index标签计数应该放在进入下一链表之后,另外链表最后一项count更新时,如果用++的话必须放在count之前,否则count始终为1(因为每次调用函数时count归0,造成链表index标签无法递增)

问题(solving):第二次循环录入的时候之前录入的数据无法罗列(被覆盖?)

脚本宝典总结

以上是脚本宝典为你收集整理的自学C语言-20211028全部内容,希望文章能够帮你解决自学C语言-20211028所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。