【发布时间】:2012-05-17 23:00:05
【问题描述】:
int maxValue = m[0][0];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if ( m[i][j] >maxValue )
{
maxValue = m[i][j];
}
}
}
cout<<maxValue<<endl;
int sum = 0;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
sum = sum + m[i][j];
}
}
cout<< sum <<endl;
对于上面的代码,如果我们绘制这样的流程图 基本独立路径将遵循六个
路径一:1 2 3 10 11 12 13 19
路径2:1 2 3 10 11 12 13 14 15 18 13 19
路径3:1 2 3 10 11 12 13 14 15 16 17 15 18 13 19
路径4:1 2 3 4 5 9 3 10 11 12 13 19
路径5:1 2 3 4 5 6 8 5 9 3 10 11 12 13 14 15 16 17 15 18 13 19
路径6:1 2 3 4 5 6 7 8 5 9 3 10 11 12 13 14 15 16 17 15 18 13 19
所以这里的问题是根据给定的代码路径 2、3、4 无法测试(注意循环中的“N”)。那么没有基本集中给出的实际执行路径可以吗?... 或者根据macabe复杂度指标,我们是否必须更改上面给出的代码。因为我的一位导师说我们必须更改代码,他也说存在非结构化循环,所以我们必须更改代码。 (我也没有看到非结构化循环) 但我的感觉是,如果我们更改代码,实际输出可能与预期输出不同。所以请有人解释一下
【问题讨论】:
标签: path-finding metrics code-metrics cyclomatic-complexity unstructured-loop