用C语言编程,使行列式转置,定好评
发布网友
发布时间:2024-05-04 12:26
我来回答
共2个回答
热心网友
时间:2024-05-07 16:13
定义:int a[1000,1000]
int b[1000,1000]
int n
(输入n)
(输入或计算得到a(原行列式))
以下是代码:
for(int i=0,i<10,i++)
{
for(int j=0,j<10,j++)
{
b[i,j]=a[j,i]
}
}
(得到b(现行列式))
如果A是直接读而不是计算出的,可以直接这样读
for(int j=0,j<10,j++)
{
for(int i=0,i<10,i++)
{
scanf("%d",a[j,i])
}
}
(a已经是现行列式)
热心网友
时间:2024-05-07 16:21
你好!解答如下:
#include <stdio.h>
int main()
{
int iRow = 0;
int iCol = 0;
int iWantInput = 0;
int iTemp = 0;
printf("请输入矩阵的行、列数:\n");
scanf("%d %d", &iRow, &iCol);
int **pSrcData = new int*[iRow];
int **pDestData = new int*[iCol];
for (int r=0; r<iRow; ++r)
pSrcData[r] = new int[iCol];
for (int r=0; r<iCol; ++r)
pDestData[r] = new int[iRow];
// input
printf("请选择测试数据来源:\n1. 自行输入\n2. 程序自动生成\n");
scanf("%d", &iWantInput);
for (int r=0; r<iRow; ++r)
{
for (int c=0; c<iCol; ++c)
{
if (iWantInput != 1)
pSrcData[r][c] = ++iTemp;
else
scanf("%d", &pSrcData[r][c]);
}
}
// pre output
printf("转置前:\n");
for (int r=0; r<iRow; ++r)
{
for (int c=0; c<iCol; ++c)
{
printf("%-4d", pSrcData[r][c]);
}
printf("\n");
}
// reverse
for (int r=0; r<iCol; ++r)
{
for (int c=0; c<iRow; ++c)
{
pDestData[r][c] = pSrcData[c][r];
}
}
// post output
printf("转置后:\n");
for (int r=0; r<iCol; ++r)
{
for (int c=0; c<iRow; ++c)
{
printf("%-4d", pDestData[r][c]);
}
printf("\n");
}
printf("\n");
// release
for (int r=0; r<iRow; ++r)
{
delete []pSrcData[r];
pSrcData[r] = NULL;
}
delete []pSrcData;
pSrcData = NULL;
return 0;
for (int r=0; r<iCol; ++r)
{
delete []pDestData[r];
pDestData[r] = NULL;
}
delete []pDestData;
pDestData = NULL;
return 0;
}
测试结果:
// 自行输入测试数据: