/* 编写一个函数(参数用指针)将一个3×3矩阵转置*/
#include <stdio.h>
void f(char (*p)[3]);
int main()
{
char a[3][3];
int i,j;
char (*p)[3]=a;
printf("请输入9个字符\n");
for(i=0;i<3;i++)
for(i=0;j<3;j++)
scanf("%c",a[i][j]);
f(a);
for(i=0;i<3;i++)
for(i=0;j<3;j++)
printf("%c",a[i][j]);
return 0;
}
void f(char (*p)[3])
{
char t;
int i,j;
for(i=0;i<3;i++)
for(i=0;j<=i;j++)
{
t=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=t;
}
}
//运行不了,请问哪里错了
2 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
#include <stdio.h> void f(char (*p)[3]); int main() { char a[3][3]; int i,j; printf("请输入9个字符\n"); for(i=0;i<3;i++) for(j=0;j<3;j++)//这里是j=0 scanf("%c",&a[i][j]); f(a); for(i=0;i<3;i++) { for(j=0;j<3;j++)//这里是j=0 printf(" %c ",a[i][j]); printf("\n"); } return 0; } void f(char (*p)[3]) { char t; int i,j; for(i=0;i<3;i++) for(j=0;j<=i;j++)//这里是j=0 { t=*(*(p+i)+j); *(*(p+i)+j)=*(*(p+j)+i); *(*(p+j)+i)=t; } }
ps:LZ能不能明天采纳?
- 2 回答
- 1 关注
- 1347 浏览
添加回答
举报
0/150
提交
取消