概要
题目描述
编程计算并输出一元二次方程ax^2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b^2-4ac>0)。
输入
输入三个实数,以空格隔开。
输出
按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐
样例输入 复制
2 6 1
样例输出 复制
-0.18 -2.82
整体架构流程
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
int a, b, c;// 输入三个整数a,b,c
scanf("%d %d %d", &a, &b, &c); // 输入整数
double result1, result2;//使用double类型,确保保留两位小数
result1 = ( - b + sqrt(b * b - 4 * a * c) ) / (2 * a);//计算一元二次方程的两个解
result2 = ( - b - sqrt(b * b - 4 * a * c) ) / (2 * a);
if (result1 < result2) {//如果result1小于result2,则交换两者,确保由大到小输出
int temp = result1;
result1 = result2;
result2 = temp;
}
printf("%7.2lf%7.2lf", result1, result2);//右对齐输出,保留两位小数,占7列
return 0;
}
小结
1.如何右对齐,占7列输出?使用printf("%7.2lf%7.2lf", result1, result2);