能不能帮我翻译一个c语言程序?问题:输入n行m列二维数组,对数组进行

能不能帮我翻译一个c语言程序?问题:输入n行m列二维数组,对数组进行转置,输出转置结果,要求主函数中输入m,n并使用指针,

#include<stdio.h>
#include<stdlib.h>
void zhuanzhi(int **a,int **b,int n,int m)
{
int i,j;

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
b[j][i]=a[i][j];
}
}

}
int main()
{
int i,j,**a,**b,n,m;
char msg[]={-56,-25,-71,-5,-78,-55,-60,-55,-93,-84,-57,-21,-72,-8,-50,
-46,49,53,48,-78,-58,-72,-69,-93,-95,0};

printf("%s\n\n",msg);

printf("请输入要转置的数组的行数,列数:",&n,&m);
scanf("%d %d",&n,&m);
a=(int**)calloc(n,sizeof(int*));
b=(int**)calloc(m,sizeof(int*));
for(i=0;i<n;i++)
{
a[i]=(int*)calloc(m,sizeof(int));
}
for(i=0;i<m;i++)
{
b[i]=(int*)calloc(n,sizeof(int));
}
printf("请输入%dx%d数组的各元素(空格分隔):\n",n,m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",*(a+i)+j);
}
}
printf("转置前:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d,",*(*(a+i)+j));
}
printf("\n");
}
zhuanzhi(a,b,n,m);
printf("转置后:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d,",*(*(b+i)+j));
}
printf("\n");
}
for(i=0;i<n;i++)
{
free(a[i]);
free(b[i]);
}
free(a);
free(b);
system("PAUSE");
return EXIT_SUCCESS;
}
温馨提示:答案为网友推荐,仅供参考