这个一直卡在函数调用那步,谢谢您

#include"stdio.h"

int i,j;

 

  int main(void)

{void zhuanzi(int (*p)[11],int x); 

 printf("请输入n值:");

int n; scanf("%d",&n);//给n赋值 

 printf("\n");

 int a[n][n];

  printf("请输入n*n矩阵\n");

  for(i=0;i<n;i++)

for(j=0;j<n;j++)

  scanf("%d",&a[i][j]);

    zhuanzi(a,n);

   

    for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

printf("%6d",a[i][j]);

printf("\n");

}

}

void zhuanzi(int (*p)[11],int x)

{  

int t;

for(i=0;i<x;i++)

for(j=i+1;j<x;j++)

{ *(*(p+i)+j)=t;

t=*(*(p+j)+i));

*(*(p+j)+i))=*(*(p+i)+j);

}

}

其实还有其它问题,比如数据交换部分也不对,大致修改如下

  1. #include"stdio.h"
    
    int i, j;
    
    int main(void)
    
    {
    	void zhuanzi(int**p, int x);
    
    	printf("请输入n值:");
    
    	int n; scanf("%d", &n);//给n赋值 
    
    	printf("\n");
    
    	int **a = new int*[n];
    	for (i = 0; i < n; i++)
    		*(a + i) = new int[n];
    
    
    	printf("请输入n*n矩阵\n");
    
    	for (i = 0; i<n; i++)
    
    		for (j = 0; j<n; j++)
    
    			scanf("%d", &a[i][j]);
    
    	zhuanzi(a, n);
    
    
    
    	for (i = 0; i<n; i++)
    
    	{
    		for (j = 0; j<n; j++)
    
    			printf("%6d", a[i][j]);
    
    		printf("\n");
    
    	}
    
    }
    
    void zhuanzi(int **p, int x)
    
    {
    	int t;
    
    	for (i = 0; i<x; i++)
    
    		for (j = i + 1; j<x; j++)
    
    		{
    			t = *(*(p + j) + i);
    			*(*(p + j) + i) = *(*(p + i) + j);
    			*(*(p + i) + j) = t;
    		}
    
    }

     

#include "stdio.h"

int i,j;
void zhuanzi(int (*p)[11],int x);
int main(void)
{
	printf("请输入n值:");

	int n;
	scanf("%d",&n);//给n赋值

	printf("\n");

	int a[n][n];

	printf("请输入n*n矩阵\n");

	for(i=0; i<n; i++)

		for(j=0; j<n; j++)

			scanf("%d",&a[i][j]);

	zhuanzi(*a,n);

	for(i=0; i<n; i++)

	{
		for(j=0; j<n; j++)

			printf("%6d",a[i][j]);

		printf("\n");

	}
	return 0;
}

void zhuanzi(int (*p)[11],int x)
{
	int t;
	for(i=0; i<x; i++)
		for(j=i+1; j<x; j++)
		{
			*(*(p+i)+j)=t;

			t=*(*(p+j)+i);

			*(*(p+j)+i)=*(*(p+i)+j);

		}

}

我调整了你代码中几个错误。

函数参数为啥写死是[11]呢?主函数明明都是用户输入的行列值啊,这个行列不一致不行啊

函数里面

    t = *(*(p + j) + i);

            *(*(p + j) + i) = *(*(p + i) + j);

这两行最后多了个括号

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632