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