导航

2022-2023-1 20221301 《计算机基础与程序设计》第七周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07
这个作业的目标 计算机科学概论第8章 并完成云班课测试《C语言程序设计》第6章并完成云班课测试

教材学习内容总结

  • 数组是内嵌结构,列表是抽象结构
    列表也可以被形象化为链式结构,链式结构以节点的概念为基础
  • 栈和队列是抽象复合结构。栈只能从一端访问其中元素,采用后进先出
    队列中的项目从一端入,从另一端出,采用先进先出
  • 树是一种分叉的体系结构,二叉树是每个节点最多有两个子节点的树
  • 树类似于一个无序列表,二叉检索树就像已排序的列表,节点间存在语义排序
  • 图也是一种数据结构,去掉了一个节点至多只有一个指向它的节点的约束
    是由一组节点和一组把节点相互连接起来的边构成的数据结构
  • 参数列表是子程序要使用的标识符或值的列表,它放置在子程序名后的括号中
  • 值参:有调用单元传入实参的副本的形参
  • 引用参数:由调用单元传入实参的地址的形参

阅读教材中遇到的问题

  • 在学习数组的时候,发现很多数组都是在一开始就定义了数组中的数的数量,我就开始思考,如何自己定义数组中数的数量,尝试了把数组定义为tense【n】,再用scanf函数输入n的数值,但不知道为什么没有成功……后来通过查书查阅资料,发现了一种方法,虽然不能自己选择所有的数作为选项去定义数组,但是可以自己改变数组中数的个数,代码如下:

include <stdio.h>

include <stdlib.h>

define NUMBER 80

int main()
{
int i,j;
int num;
int tensu[NUMBER];
int bunpu[11] = {0};

printf("请输入学生人数:");
do{
    scanf("%d", &num);
    if (num < 1 || num > NUMBER)
        printf(" \a请输入1~%d的数:",NUMBER);

}while (num < 1 || num > NUMBER);
printf("请输入%d人的分数。\n", num);
for (i = 0; i < num; i++){
    printf("%2d号:",i+1);
    do {
        scanf("%d", &tensu[i]);
        if(tensu[i] < 0 || tensu[i] > 100)
            printf("\a请输入1~100的数:");

    }while(tensu[i] < 0 || tensu[i] > 100);
    bunpu[tensu[i] /10]++;
}

puts("\n---分布图---");
printf("     100:");

for (j = 0;j < bunpu[10]; j++)
    putchar('*');
putchar('\n');

for (i = 9;i>= 0; i--){
    printf("%3d - %3d:",i * 10,i * 10+9);
    for  (j = 0;j < bunpu[i]; j++)
        putchar('*');
    putchar('\n');
}

return 0;

}

运行结果如图:

代码调试中的问题和解决过程

  • 问题1:上面的代码中第33行到40行还没有完全理解
  • 问题1解决方法:通过逐行调试,看每行的作用是什么,尽量理解。
  • 问题2:学习递推后,发现自己的数学不是很好……有时候想不到一些精妙的算法。
  • 问题2解决办法:需要自己多去看不同的算法,并且在网上查找资料,逐步增强数学逻辑。

其他(感悟、思考等,可选)

最近开始在哈工大的网站上练习了,发现之前学的东西掌握的还不错,大概与之前不断敲代码并且尝试理解有关系,但是很快把自己会的知识点对应的题目做完了,其他很多题都还没与学习,虽然巩固了学过的东西,但是没有往前走,所以还是需要多看多学多练,不多往前走!

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 0/0 3/3
第二周 200/200 6/6 18/21
第三周 200/400 10/10 10/31
第四周 300/700 2/12 19/50
第五周 300/1000 3/15 20/70
第六周 300/1300 5/20 15/85
第七周 900/2200 1/21 15/100

参考资料