#include <stdio.h>
#include <stdlib.h>
int main(){
int mat[3][3]={
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int nmat[3][3];
int *s=mat[0][0];
int *t=nmat[0][2];
int i;
for (i=0; i<3; i++){
*t=*s;
s++; t=t+3;
}
int *q=mat[2][0];
int *w=nmat[0][0];
for (i=0; i<3; i++){
*w=*q;
q++; w=w+3;
}
int *a=mat[2][0];
int *b=nmat[0][0];
for (i=0; i<3; i++){
*b=*a;
a=a-3; b++;
}
int *x=mat[2][2];
int *y=nmat[2][0];
for (i=0; i<3; i++){
*b=*a;
a=a-3; b++;
}
int *p=nmat[0][0];
int j;
for (i=0; i<3; i++){
for (j=0; j<3; j++){
printf("%d ", *p);
p++;
}
printf("\n");
}
}
我是c语言的初学者,正在练习一些问题。 我正在尝试制作一个顺时针旋转矩阵的程序,但它似乎不起作用。我的代码在哪里错误?
答案 0 :(得分:0)
int *s=mat[0][0];
在这里,您将s
声明为pointer of type int
,同时使用mat[0][0]
(类型为int
)对其进行初始化。