OpenJudge NOI 刷题日常(2)

1.4 20 求一元二次方程的根

该题注意事项:

用float或double等浮点类型数据,用负数乘0,会得到一个-0的答案,所以需要加以定义。

#include <bits/stdc++.h>
using namespace std;

int main()
{
	float x1,x2;
	
	float a, b, c;
	
	scanf("%f %f %f", &a, &b, &c);

	
	if(b*b == 4*a*c)
	{
		x1=(-1)*b/(2*a);	
		x2=(-1)*b/(2*a);		
		
		printf("%s%.5f", "x1=x2=",x1);
	}
	else if(b*b > 4*a*c)
	{
		x1=(-1*b + sqrt(b*b-4*a*c))/(2*a);
		x2=(-1*b - sqrt(b*b-4*a*c))/(2*a);
		
		if(x1>x2)
			printf("%s%.5f%s%.5f", "x1=",x1,";x2=",x2);
		else
			printf("%s%.5f%s%.5f", "x1=",x2,";x2=",x1);
		
	}
	else
	{		
		if(b==0)
			x1=0;
		else
			x1=(-1)*b/(2*a);
		x2=sqrt(4*a*c-b*b)/abs(2*a);
				
		printf("%s%.5f%s%.5f%s%.5f%s%.5f%s", "x1=",x1,"+",x2,"i;x2=",x1,"-",x2,"i");
	}
	
	return 0;
}

关键点如下: 

if(b==0)
			x1=0;

输入“1 0 1 ”

若不加以定义,输出为

更改后,输出为

 

posted @   ncwzdlsd  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示