c语言编写二阶逆矩阵给定的二阶矩阵(2*2),求其逆矩阵;输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/25 15:52:03
c语言编写二阶逆矩阵
给定的二阶矩阵(2*2),求其逆矩阵;
输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开.
输入:
2 0
1 1
输出:
0.500000 0.000000
-0.500000 1.000000
给定的二阶矩阵(2*2),求其逆矩阵;
输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开.
输入:
2 0
1 1
输出:
0.500000 0.000000
-0.500000 1.000000
#include
int ScanDMatrix(double matrix[][2]);
void PrintDMatrix(double matrix[][2]);
int InverseDMatrix(double matrix[][2]);
int main(void)
{
double matrix[2][2];
printf("Input the matrix this way\n");
printf("A B\nC D\n:\n");
if (! ScanDMatrix(matrix))
{
printf("Are you kidding me?\n");
return 0;
}
printf("The matrix you input is:\n");
PrintDMatrix(matrix);
if (InverseDMatrix(matrix))
{
printf("The inverse of the matrix is:\n");
PrintDMatrix(matrix);
printf("\n");
}
else
{
printf("Oh, what a pitty, it does not have an inverse one.\n");
}
return 0;
}
int ScanDMatrix(double matrix[][2])
{
return scanf("%lf%lf", &matrix[0][0], &matrix[0][1]) == 2
&& scanf("%lf%lf", &matrix[1][0], &matrix[1][1]) == 2;
}
void PrintDMatrix(double matrix[][2])
{
printf("%10g\t%10g\n", matrix[0][0], matrix[0][1]);
printf("%10g\t%10g\n", matrix[1][0], matrix[1][1]);
}
int InverseDMatrix(double matrix[][2])
{
double dDiv, dTmp;
dDiv = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
if (! dDiv)
return 0;
dTmp = matrix[0][0];
matrix[0][0] = matrix[1][1] / dDiv;
matrix[1][1] = dTmp / dDiv;
matrix[0][1] = -matrix[0][1] / dDiv;
matrix[1][0] = -matrix[1][0] / dDiv;
return 1;
}
再问: 出来的答案中有一个-0 不过还是谢谢 我是个新入门的菜鸟 看起来还是有点吃力 if (! ScanDMatrix(matrix)) { printf("Are you kidding me?\n"); return 0; } 这是什么意思???
再答: 输入的格式不对,就提示出错,然后退出。 比如输入 a 后按回车键就会这样。 至于出现的-0,与使用的库函数版本有关系,可根据自己使用的编译器对程序进行微调即可。
int ScanDMatrix(double matrix[][2]);
void PrintDMatrix(double matrix[][2]);
int InverseDMatrix(double matrix[][2]);
int main(void)
{
double matrix[2][2];
printf("Input the matrix this way\n");
printf("A B\nC D\n:\n");
if (! ScanDMatrix(matrix))
{
printf("Are you kidding me?\n");
return 0;
}
printf("The matrix you input is:\n");
PrintDMatrix(matrix);
if (InverseDMatrix(matrix))
{
printf("The inverse of the matrix is:\n");
PrintDMatrix(matrix);
printf("\n");
}
else
{
printf("Oh, what a pitty, it does not have an inverse one.\n");
}
return 0;
}
int ScanDMatrix(double matrix[][2])
{
return scanf("%lf%lf", &matrix[0][0], &matrix[0][1]) == 2
&& scanf("%lf%lf", &matrix[1][0], &matrix[1][1]) == 2;
}
void PrintDMatrix(double matrix[][2])
{
printf("%10g\t%10g\n", matrix[0][0], matrix[0][1]);
printf("%10g\t%10g\n", matrix[1][0], matrix[1][1]);
}
int InverseDMatrix(double matrix[][2])
{
double dDiv, dTmp;
dDiv = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
if (! dDiv)
return 0;
dTmp = matrix[0][0];
matrix[0][0] = matrix[1][1] / dDiv;
matrix[1][1] = dTmp / dDiv;
matrix[0][1] = -matrix[0][1] / dDiv;
matrix[1][0] = -matrix[1][0] / dDiv;
return 1;
}
再问: 出来的答案中有一个-0 不过还是谢谢 我是个新入门的菜鸟 看起来还是有点吃力 if (! ScanDMatrix(matrix)) { printf("Are you kidding me?\n"); return 0; } 这是什么意思???
再答: 输入的格式不对,就提示出错,然后退出。 比如输入 a 后按回车键就会这样。 至于出现的-0,与使用的库函数版本有关系,可根据自己使用的编译器对程序进行微调即可。
c语言编写二阶逆矩阵给定的二阶矩阵(2*2),求其逆矩阵;输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一
c语言求逆矩阵给定的二阶矩阵(2*2),求其逆矩阵输入大小为2*2的距阵输出一个大小为2*2的距阵,矩阵每一行相邻的的两
C语言 :编写 一个程序使一个2行3列的矩阵倒置成3行俩列的矩阵.就是矩阵的倒置、 谢谢拉 .
C语言请教高手,输入一个数字n,以该数字作为矩阵的大小,把1,2,3...n*n的数字按顺时螺旋输出.
两个关于矩阵的问题如果一个实矩阵满足对角元大于0,其余元均小于0,且每一行和为0,求其秩A和B是实矩阵,且存在C和D,使
C语言:输入一个2*3的整数矩阵和一个3*2的整数矩阵,使用指针数组实现这两个矩阵的相乘.程序如下:
C语言编写 螺旋矩阵编写 一个形如这样的矩阵宽度 自制~1 2 3 4 516 17 18 19 615 24 25 2
编写一个程序,求矩阵A,B的和,结果存入矩阵C中,并按矩阵形式输出.
已知二阶矩阵的逆矩阵,怎么求二阶矩阵
C语言实现有两个分别是2行3列和3行2列的矩阵,其数据均由键盘输入,这两个矩阵相乘后是一个2*2的矩阵
C语言螺旋矩阵从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填
已知二阶矩阵A有两个特征值1,2,求矩阵A的特征多项式.