这就是一个很简单的转置行列式问题
# include <stdio.h>
int main()
{
int a[3][4];
int i,j,b;
printf(“Please input 3*4 array:\n”);
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
scanf(“%d”,&a[i][j]);
}
for(i=0;i<3;i++)
for(j=i;j<4;j++)
{
b=*(*a+i*4+j);
*(*a+i*4+j)=*(*a+j*4+i);
*(*a+j*4+i)=b;
}
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf(“%d “,a[i][j]);
}
printf(“\n”);
}
return 0;
}
# include <stdio.h>
int main()
{
int a[3][4];
int i,j,b;
printf(“Please input 3*4 array:\n”);
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
scanf(“%d”,&a[i][j]);
}
for(i=0;i<3;i++)
for(j=i;j<4;j++)
{
b=*(*a+i*4+j);
*(*a+i*4+j)=*(*a+j*4+i);
*(*a+j*4+i)=b;
}
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
printf(“%d “,a[i][j]);
}
printf(“\n”);
}
return 0;
}
解决方案
40
你这是数组越界导致的,程序退出的时候会报异常
你把int a[3][4];改为int a[4][4];就行
你把int a[3][4];改为int a[4][4];就行