为了账号安全,请及时绑定邮箱和手机立即绑定

求指教这段关于矩阵转置的代码哪里有问题

求指教这段关于矩阵转置的代码哪里有问题

C C++
路卡利欧 2016-11-14 23:43:20
/* 编写一个函数(参数用指针)将一个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能不能明天采纳?

查看完整回答
1 反对 回复 2016-11-15
?
望远

TA贡献1017条经验 获得超1032个赞

scanf("%c",&a[i][j]);//少了& 具体逻辑没有仔细看,有问题在下面提问。
查看完整回答
反对 回复 2016-11-15
  • 2 回答
  • 1 关注
  • 1351 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信