C语言方程问题?
题目描述求一元二次方程ax2+bx+c=0的解。a,b,c为整数。解为double。输入有多组测试数据,每行三个整数代表a,b,c的值,用空格隔开。输出如果没有实根则输出...
题目描述
求一元二次方程ax2+bx+c=0的解。a,b,c为整数。解为double。
输入
有多组测试数据,每行三个整数代表a,b,c的值 ,用空格隔开。
输出
如果没有实根则输出:NO SOLUTION
如果有解则输出2个解,小数点后面保留3位。2个根输出时加delta的平方根在前,减在后,2个解中间用3个~隔开。
样例输入 Copy
1 -2 1
1 1 2
样例输出 Copy
1.000~~~1.000
NO SOLUTION 展开
求一元二次方程ax2+bx+c=0的解。a,b,c为整数。解为double。
输入
有多组测试数据,每行三个整数代表a,b,c的值 ,用空格隔开。
输出
如果没有实根则输出:NO SOLUTION
如果有解则输出2个解,小数点后面保留3位。2个根输出时加delta的平方根在前,减在后,2个解中间用3个~隔开。
样例输入 Copy
1 -2 1
1 1 2
样例输出 Copy
1.000~~~1.000
NO SOLUTION 展开
1个回答
2020-03-14
展开全部
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
double x1, x2, delta;
while ((scanf("%d%d%d", &a, &b, &c)) != EOF) {
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("NO SOLUTION\n");
continue;
}
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("%.3f~~~%.3f\n", x1, x2);
}
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |