文章
187
粉丝
0
获赞
3
访问
37.8k

评分及理由
(1)得分及理由(满分4分)
学生给出了算法的基本思路:遍历顶点,计算每个顶点的出度和入度,比较出度和入度,如果出度大于入度则输出顶点。但描述中存在一些不准确或模糊之处:
根据评分标准,思路正确不扣分,但表述存在缺陷应适当扣分。扣1分。
得分:3分
(2)得分及理由(满分9分)
学生代码框架基本正确,但存在多处逻辑错误和语法错误:
n,应使用 G.numVertices。G,如 Edge 应为 G.Edge,VerticesList 应为 G.VerticesList。count++ 语句放在了 if (chu > ru) 条件判断之外,这会导致无论顶点是否为K顶点,count都会增加,与题目要求不符。printf("%d", count); 但未 return count;)。printf("%d", count); 的位置在函数内最后,但题目要求返回K顶点个数,打印应在函数内部完成,且通常打印顶点和返回个数是两件事,这里打印count可能多余(但根据题目“输出G中所有K顶点”并返回个数,打印顶点已由前面完成,打印count可能被视为调试输出或误解)。标准答案只打印顶点,不打印个数,个数通过返回值返回。此处多打印了count,但未严重影响核心逻辑,可视为小瑕疵。根据评分标准,逻辑错误需要扣分。主要错误是计数逻辑错误和结构体成员访问错误,这些属于严重逻辑错误。语法错误(未定义n、未加G.)也导致代码无法正确运行。但考虑到识别可能产生的误写(如n可能是G.numVertices的误写),以及核心的双重循环比较出度入度的逻辑正确,给予部分分数。
扣分点:计数逻辑错误(严重)-3分;结构体成员访问错误(多处)-2分;未定义变量n -1分;缺少返回值 -1分。共扣7分。
得分:2分
题目总分:3+2=5分
登录后发布评论
暂无评论,来抢沙发