从标准输入四个浮点数,前两个数为2×2矩阵第一行,后两个数为2×2矩阵的第二行,计算这个矩阵的特征值。如果不存在实数特征值,输出"无实数特征值";如果只有一个特征值,则输出一个数;否则按从小到大的顺序输出两个特征值;保留二位小数。 c语言
时间: 2024-04-08 14:33:54 浏览: 72
您可以使用以下C语言代码来计算给定2×2矩阵的特征值:
```c
#include <stdio.h>
#include <math.h>
void calculateEigenvalues(float a, float b, float c, float d) {
float trace = a + d;
float determinant = a * d - b * c;
// 计算特征值
float eigenvalue1 = (trace + sqrt(trace * trace - 4 * determinant)) / 2;
float eigenvalue2 = (trace - sqrt(trace * trace - 4 * determinant)) / 2;
// 判断特征值情况并输出结果
if (isnan(eigenvalue1) || isnan(eigenvalue2)) {
printf("无实数特征值\n");
} else if (eigenvalue1 == eigenvalue2) {
printf("%.2f\n", eigenvalue1);
} else {
if (eigenvalue1 < eigenvalue2) {
printf("%.2f %.2f\n", eigenvalue1, eigenvalue2);
} else {
printf("%.2f %.2f\n", eigenvalue2, eigenvalue1);
}
}
}
int main() {
float a, b, c, d;
// 从标准输入读入四个浮点数
scanf("%f %f %f %f", &a, &b, &c, &d);
// 调用函数计算特征值并输出结果
calculateEigenvalues(a, b, c, d);
return 0;
}
```
您可以将以上代码保存为一个.c文件,并使用C编译器编译运行。从标准输入输入四个浮点数,程序将会计算给定矩阵的特征值并输出结果。请注意,保留二位小数的输出格式使用了`%.2f`。
阅读全文