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: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
McCabe的复杂性度量与独立路径
所以这里的问题是根据给定的代码路径2,3,4不能被测试(注意循环中的“N”)。那么是不是有一个基本集合中给出的实际执行路径? 或根据macabe复杂性度量,我们是否必须更改上面给出的代码。因为我的导师说我们必须改变代码,他说有非结构化的循环,所以我们必须改变代码。 (我没有看到一个非结构化的循环) 但我的感觉是,如果我们改变代码,实际的输出可能会不同于预期的输出。所以请有人解释一下这个问题
McCabe的复杂性没有被定义为决策点数加1,至少不是McCabe。有一个定理证明了他的定义等价于决策点加1,这更易于计算: - } –
对;-)对不起,因为混淆,当然,#decision points + 1只适用于结构化编程。我会更新答案。 –