下面是我的代码错误为:('&' requires l-value) 我的思路:定义两个二维数组,用指针的方法将列元素赋值给对应的行元素,然后第二列再赋第二行以此列推 # include int main () { void zhuanzhi (int (*p)[3])
下面是我的代码错误为:('&' requires l-value) 我的思路:定义两个二维数组,用指针的方法将列元素赋值给对应的行元素,然后第二列再赋第二行以此列推 # include int main () { void zhuanzhi (int (*p)[3]); int a[3][3],i,j; int (*p... 下面是我的代码错误为:('&' requires l-value)
我的思路:定义两个二维数组,用指针的方法将列元素赋值给对应的行元素,然后第二列再赋第二行以此列推
# include
int main ()
{
void zhuanzhi (int (*p)[3]);
int a[3][3],i,j;
int (*p)[3];
printf("请输入一个二维矩阵:
");
for (i = 0;i < 3;i )
for (j = 0;j < 3;j )
scanf("%d",&a[i][j]);
p = a;
zhuanzhi (p);
printf("转置后的矩阵:
");
for (i = 0;i < 3;i )
{
for (j = 0;j < 3;j )
printf("%d ",a[i][j]);
printf("
");
}
return 0;
}
void zhuanzhi (int (*p)[3])
{
int i,j,s = 1,g = 0;
int (*z)[3];
z = p;
for (i = 0;i < 3;i ,s )
{
for (j = 0;j < 3;j )
* (z[i] j) = *(*(p j));
p = & (p[g] s);
}
}
怎么改?我p = & (p[g] s)的意图是将先将行指针转换成列指针加1,即把列往后移一个,然后谭浩强不是说列指针转换成行指针加&,行指针转换成列指针加*,所以我就把&当成*一样用了,结果就错误了怎么改?第二请大神再看看代码还有什么错误,一并改正谢谢 展开
展开
全部