如何解决这个c ++ while循环的不变性是什么?
我在C ++教科书中写了一个问题的答案,该教科书要求我们编写一个绘制矩形,正方形和三角形的程序。我编写的代码可以很好地完成所有这些工作,但是我一直在努力确定循环不变式。有些似乎直截了当,有些则没有。
循环根据三角形的高度扫描20x20空间的列,然后将当前列号与高度和行号之和以及差值进行比较。
它行得通,我只是不确定我能确定不变式。
//draws triangle
int row = 0;
int triHeight = 20;
// invariant: we have written 'row' rows of the triangle
while (row != triHeight)
{
int col = 0;
//What is the invariant of this while loop?
while (col < triHeight + row) {
++col;
if (col == triHeight - row || col == triHeight + row || row == triHeight - 1)
cout << '*';
else {
cout << ' ';
}
}
cout << endl;
++row;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。