/* 编写一个函数(参数用指针)将一个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 关注
- 1443 浏览
添加回答
举报
0/150
提交
取消
