文章
782
粉丝
21
获赞
1
访问
178.8k

评分及理由
(1)得分及理由(满分4分)
学生答案的设计思想描述为:“建立in和out变量用于循环计算顶点的出度和入度,然后用num统计出度大于入度的顶点的个数。” 该描述基本涵盖了算法的主要步骤:通过双重循环遍历邻接矩阵,计算每个顶点的出度和入度,并统计出度大于入度的顶点个数。但描述较为简略,未明确提及如何利用邻接矩阵元素值(0/1)来累加度数,也未说明需要输出顶点名称(仅提到统计个数)。标准答案要求输出顶点名称并返回个数,学生思想中未包含输出顶点名称的步骤。因此扣1分。
得分:3分
(2)得分及理由(满分9分)
学生提供的代码基本实现了算法核心逻辑:通过双重循环计算每个顶点的出度和入度,并判断出度是否大于入度以进行计数。但存在以下问题:
MAXV而非实际顶点数G.numVertices,这会导致遍历无效的矩阵区域,可能访问未初始化的数据或增加不必要的计算。这是一个逻辑错误,扣2分。PrintVertices(首字母大写),与题目要求的printVertices不完全一致,但C语言中函数名大小写不敏感,且可能为识别误差,不扣分。其他部分逻辑正确,包括度数的计算和比较。
得分:5分
题目总分:3+5=8分
登录后发布评论
暂无评论,来抢沙发