亲爱的们求帮助!西南科技大学 ACM【求二阶逆矩阵】,VC 6.0通过,提交结果是【wrong answer!】??? 10
http://acm.swust.edu.cn/oj/problem/285/题目:给定的二阶矩阵(2*2),求其逆矩阵。Input输入大小为2*2的距阵。Output输...
http://acm.swust.edu.cn/oj/problem/285/
题目:
给定的二阶矩阵(2*2),求其逆矩阵。
Input
输入大小为2*2的距阵。
Output
输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开。
Sample
Input
2 0
1 1
Sample
Output
0.500000 0.000000
-0.500000 1.000000
我的代码:
#include <stdio.h>
int main()
{
double arr1[2][2];//arr1为原矩阵
int i, j;
double temp, dete;//dete表示矩阵的行列式
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
scanf("%lf", &arr1[i][j]);
}
}
//求伴随矩阵
temp = arr1[0][0];
arr1[0][0] = arr1[1][1];
arr1[1][1] = temp;
arr1[0][1] = arr1[0][1] * (-1);
arr1[1][0] = arr1[1][0] * (-1);
dete = arr1[0][0] * arr1[1][1] - arr1[1][0] * arr1[0][1];//行列式
if (dete == 0)
{
printf("no answer!\n");
}
else
{
for (i= 0; i < 2; i++) //求逆矩阵
{
for (j = 0; j < 2; j++)
{
arr1[i][j] = arr1[i][j] / dete;
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2;j++)
{
printf("%.6f ", arr1[i][j]);
}
printf("\n");
}
}
return 0;
} 展开
题目:
给定的二阶矩阵(2*2),求其逆矩阵。
Input
输入大小为2*2的距阵。
Output
输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开。
Sample
Input
2 0
1 1
Sample
Output
0.500000 0.000000
-0.500000 1.000000
我的代码:
#include <stdio.h>
int main()
{
double arr1[2][2];//arr1为原矩阵
int i, j;
double temp, dete;//dete表示矩阵的行列式
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
scanf("%lf", &arr1[i][j]);
}
}
//求伴随矩阵
temp = arr1[0][0];
arr1[0][0] = arr1[1][1];
arr1[1][1] = temp;
arr1[0][1] = arr1[0][1] * (-1);
arr1[1][0] = arr1[1][0] * (-1);
dete = arr1[0][0] * arr1[1][1] - arr1[1][0] * arr1[0][1];//行列式
if (dete == 0)
{
printf("no answer!\n");
}
else
{
for (i= 0; i < 2; i++) //求逆矩阵
{
for (j = 0; j < 2; j++)
{
arr1[i][j] = arr1[i][j] / dete;
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2;j++)
{
printf("%.6f ", arr1[i][j]);
}
printf("\n");
}
}
return 0;
} 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询