文章
164
粉丝
0
获赞
1
访问
43.9k
(1)某点的入度即为临接矩阵中该所对应的列中不为0的值总和,出度即为改点邻接矩阵所对应的行中不为0的值总和,采用一个count记录K节点个数,对于每个节点,依次遍历其所在行和所在列得到入度和出度值,若满足出度大于入度,则count++,最后输出count即可
(2)
int printVertices(MGraph G)
{
int count=0;
for(int i=0;i<numVertices;i++)
{
int indegree=0;
int outdegree=0;
for(int j=0;j<numVertices;j++)
{
outdegree+= G.Edge[i][j];
indegree+= G.Edge[j][i];
}
if(outdegree>indegree){cout<<k节点:i<<endl;count++;
}
return count;
}
cout<<count;
评分及理由
(1)得分及理由(满分4分)
得分:4分
理由:学生的设计思想完全正确。明确指出了通过遍历邻接矩阵来计算每个顶点的入度(对应列的非零值总和)和出度(对应行的非零值总和),然后比较出度和入度来识别K顶点,并统计个数。思路与标准答案一致,表述清晰。
(2)得分及理由(满分9分)
得分:6分
理由:代码整体框架正确,核心逻辑(计算入度和出度的方法)与标准答案一致。但存在以下逻辑错误和细节问题: 题目总分:4+6=10分
1. 函数参数中的右括号使用了中文全角字符(`MGraph G)`),应改为半角字符(`MGraph G)`) - 扣1分
2. 循环条件中使用了未定义的变量`numVertices`,应为`G.numVertices` - 扣1分
3. 输出语句中`cout<
4. 函数结尾多了一个`cout<
登录后发布评论
暂无评论,来抢沙发