#include<stdio.h>
int main()
{
void inv(int (*q)[],int n);
int a[3][3],i,j;
int (*p)[3];
printf("请输入一个3*3矩阵\n");
for(i=0;i<3;i++)
scanf("%d",&a[i][j]);
p=a;
inv(p,3);
for(i=0;i<3;i++)
printf("%d\n",a[i][j]);
return 0;
}
void inv(int (*q)[3],int n)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i<j)
{
t=*(*(q+i)+j);
*(*(q+i)+j)=*(*(q+j)+i);
*(*(q+j)+i)=t;
}
}
本人不知道该怎么改了 帮本人看看吧
解决方案
20
可以跑出结果

20
void inv(int (*q)[],int n);
改成:
void inv(int (*q)[3],int n);
改成:
void inv(int (*q)[3],int n);
20
你的inv函数的第二个参数n好像没用到啊?
而且int (*q)[3]你用这种形式,必须要指定列数3,假如你的矩阵维数不固定的话限制很大
而且int (*q)[3]你用这种形式,必须要指定列数3,假如你的矩阵维数不固定的话限制很大
10
请那些喜欢将数组作为函数参数传来传去的码农思考一下为什么不把整个互联网内容当作函数参数传来传去呢?
