什么是数组转置
第1个回答 推荐于2017-12-16
#define X_max 20//定义数组的最大可以转置范围
#define Y_max 20
//数组输出函数
void output(int Array[][Y_max], int x, int y)//做形参,应该带列下标,而且要与定义时大小相同
{
int i, j;
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
{
printf("%d ", Array[i][j]);
}
printf("\r\n");
}
}
//矩阵转置函数
void transpose( int a[][Y_max], int x, int y)//同样注意二维数组下标
{
int i, j;
int temp;
for(i=0; i<x; i++)
{
for(j=i+1; j<y; j++)//关键句
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
output(a, y, x);//调用输出数组函数
}
void main()
{
int i, j;
int x, y;
int array[X_max][Y_max]=;//定义数组,注意要初始化
printf("请输入数组的行数和列数,用逗号隔开\r\n");
scanf("%d,%d", &x, &y);
if(x > X_max && y > Y_max)
{
printf("待转置数组过大,本程序不能满足要求\r\n");
return;
}
else
{
printf("请输入数组元素\r\n");
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
{
scanf("%d", &array[i][j]);
}
}
}
printf("输出待转置二维数组\r\n");
output(array, x, y);
printf("输出转置后二维数组\r\n");
transpose(array, x, y);
}本回答被提问者采纳
#define Y_max 20
//数组输出函数
void output(int Array[][Y_max], int x, int y)//做形参,应该带列下标,而且要与定义时大小相同
{
int i, j;
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
{
printf("%d ", Array[i][j]);
}
printf("\r\n");
}
}
//矩阵转置函数
void transpose( int a[][Y_max], int x, int y)//同样注意二维数组下标
{
int i, j;
int temp;
for(i=0; i<x; i++)
{
for(j=i+1; j<y; j++)//关键句
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
output(a, y, x);//调用输出数组函数
}
void main()
{
int i, j;
int x, y;
int array[X_max][Y_max]=;//定义数组,注意要初始化
printf("请输入数组的行数和列数,用逗号隔开\r\n");
scanf("%d,%d", &x, &y);
if(x > X_max && y > Y_max)
{
printf("待转置数组过大,本程序不能满足要求\r\n");
return;
}
else
{
printf("请输入数组元素\r\n");
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
{
scanf("%d", &array[i][j]);
}
}
}
printf("输出待转置二维数组\r\n");
output(array, x, y);
printf("输出转置后二维数组\r\n");
transpose(array, x, y);
}本回答被提问者采纳
第2个回答 2021-10-26
数组的转置是将矩阵的行列互换得到的新矩阵称为转置矩阵,转置矩阵的行列式不变
第3个回答 2011-02-25
不好意思,我好像没听说过数组的转置,转置应该是线性代数中对矩阵的一种运算。