我有一个简单的矩阵转置函数,我想用后置条件来验证它
matrix_transpose(matrix_transpose(original_matrix)==original_matrix
其语法是什么?我试过了
ensures \result(\result)==a;
其中 a 是原始矩阵,但这似乎不起作用。
编辑:这是我的代码
void transpose_matrix(int[][10],int,int);
int main()
{
int r=3;
int c=3;
int a[10][10]={
{1,1,1},
{2,2,2},
{3,3,3}
};
transpose_matrix(a,r,c);
return 0;
}
/*@
ensures \result(\result)==a;
*/
void transpose_matrix(int a[][10], int r, int c){
int trans[10][10],i,j;
for(i=0; i<r; ++i)
for(j=0; j<c; ++j)
{
trans[j][i]=a[i][j];
}
}
也许我没有以正确的方式思考这个问题。