当前位置: 首页 > news >正文

C语言二——C语言编写一段代码,求一元二次方程的根

 

这段代码实现了解一元二次方程的根的计算。用户需要输入方程的系数a、b、c,然后根据判别式的值确定方程的根的情况,并进行相应的输出。

  • 如果判别式大于0,说明方程有两个实根,分别计算并输出。
  • 如果判别式等于0,说明方程有一个重根,计算并输出。
  • 如果判别式小于0,说明方程无实根,计算并输出虚根的实部和虚部。

其中,判别式的计算基于数学库中的pow函数和sqrt函数,实根和虚根的计算基于实部和虚部的公式。

如果你有关于这段代码的问题,请继续提问。

#include <stdio.h>
#include <math.h>int main() {double a, b, c;double discriminant, x1, x2;printf("请输入一元二次方程的系数(a、b、c):\n");scanf("%lf %lf %lf", &a, &b, &c);discriminant = pow(b,2) - 4 * a * c;if (discriminant > 0) {x1 = (-b + sqrt(discriminant)) / (2 * a);x2 = (-b - sqrt(discriminant)) / (2 * a);printf("方程有两个实根,分别是 %.2lf 和 %.2lf\n", x1, x2);}else if (discriminant == 0) {x1 = x2 = -b / (2 * a);printf("方程有一个实根,为 %.2lf\n", x1);}else {double realPart = -b / (2 * a);double imaginaryPart = sqrt(-discriminant) / (2 * a);printf("方程无实根,虚根为 %.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);}return 0;
}

 

这是一个用于求解一元二次方程的C语言程序。它会根据用户输入的系数,判断方程的根的情况,并输出相应的结果。

下面是程序的具体分块分析:

  1. 头文件引入和 main() 函数的声明
#include <stdio.h>
#include <math.h>int main() {// ...
}

这里引入了两个头文件 stdio.h 和 math.hstdio.h 用于使用标准输入输出函数,math.h 用于使用数学函数。然后声明了 main() 函数作为程序的入口。

  1. 变量声明和用户输入
double a, b, c;
double discriminant, x1, x2;printf("请输入一元二次方程的系数(a、b、c):\n");
scanf("%lf %lf %lf", &a, &b, &c);

在这个块中,声明了所需的变量 abc,分别用来表示一元二次方程的系数。还声明了 discriminantx1x2,用来计算方程的判别式和根。通过 printf() 函数向用户输出提示信息,要求用户输入方程的系数。然后使用 scanf() 函数接收用户输入的系数。

  1. 计算判别式和求解根
discriminant = pow(b,2) - 4 * a * c;if (discriminant > 0) {x1 = (-b + sqrt(discriminant)) / (2 * a);x2 = (-b - sqrt(discriminant)) / (2 * a);printf("方程有两个实根,分别是 %.2lf 和 %.2lf\n", x1, x2);
}
else if (discriminant == 0) {x1 = x2 = -b / (2 * a);printf("方程有一个实根,为 %.2lf\n", x1);
}
else {double realPart = -b / (2 * a);double imaginaryPart = sqrt(-discriminant) / (2 * a);printf("方程无实根,虚根为 %.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}

这个块中,通过数学函数 pow() 计算出方程的判别式 discriminant。然后根据不同的判别式的值,作出相应的判断:

  • 判别式大于0时,方程有两个实根,分别计算出这两个实根并输出。
  • 判别式等于0时,方程有一个实根,计算出这个实根并输出。
  • 判别式小于0时,方程无实根,计算出虚根的实部和虚部并输出。
  1. 返回并结束程序
return 0;

这个块用于表示程序执行成功,并通过 return 语句返回一个整数值 0,作为程序的退出码。

以上就是这个程序的具体分块分析。如果您还有其他问题,请随时提问。

相关文章:

C语言二——C语言编写一段代码,求一元二次方程的根

这段代码实现了解一元二次方程的根的计算。用户需要输入方程的系数a、b、c&#xff0c;然后根据判别式的值确定方程的根的情况&#xff0c;并进行相应的输出。 如果判别式大于0&#xff0c;说明方程有两个实根&#xff0c;分别计算并输出。如果判别式等于0&#xff0c;说明方程…...

用Idea把SpringBoot项目打包镜像上传至docker

1、设置docker把2375端口开起来 命令查看docker装在哪里 vim docker.service 新增 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 2、配置Dockerfile 我在跟pom同一层 3、配置docker-maven-plugin <plugin><groupId>com.spotify</groupId><arti…...

基于 SVG 的图形交互方案实践

不知道从什么时候起&#xff0c;人们开始喜欢上数字大屏这种“花里胡哨”的东西&#xff0c;仿佛只要用上“科技蓝”这样神奇的色调&#xff0c;就可以让一家公司焕然一新&#xff0c;瞬间变得科技感满满。不管数字大屏的实际意义&#xff0c;是用来帮助企业监控和决策&#xf…...

微服务(rpc)

微服务&#xff08;rpc&#xff09; 微服务必备的模块生产者消费者管理平台流量控制集群情况下如何做到流量监控 负载均衡服务发现和治理序列化传输序列化和反序列化 微服务是一种架构风格&#xff0c;将一个应用程序拆分为一组小型、独立的服务&#xff0c;每个服务都可以独立…...

ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】

ThinkPHP 多应用配置&#xff0c;及不同域名访问不同应用的配置【详解】 一、安装多应用扩展二、删除项目的中默认的controller文件夹三、创建多应用四、修改config/app.php文件五、测试并且访问多应用六、配置小皮&#xff0c;不同域名访问不同的应用七、小结 一、安装多应用扩…...

Springboot+Mybatis框架是否会取代SSM框架?

个人认真思考的观点&#xff1a;从市场使用来说&#xff0c;会有这个趋势。从技术上来说&#xff0c;不存在被替代这一说。 Spring BootMybatis框架是指使用Spring Boot作为基础框架&#xff0c;并集成Mybatis作为持久层框架的组合&#xff0c;它是一个基于Spring框架的快速开发…...

使用windeployqt和InstallShield打包发布Qt软件的流程

前言 Qt编译之后需要打包发布&#xff0c;并且发布给用户后需要增加一个安装软件&#xff0c;通过安装软件可以实现Qt软件的安装&#xff1b;用于安装软件的软件有很多&#xff0c;这里主要介绍InstallShield使用的流程&#xff1b; 使用windeployqt打包Qt编译后的程序 Qt程序…...

解决selenium的getdrive()方法阻塞问题

selenium里面的Webdriver的get()方法默认是阻塞的&#xff0c;也就是说要等整个页面全都加载完它才会相应。但我们大部分时候不需要用到页面里的所有东西&#xff0c;也许只需要用到里面的一个元素就行了 所以下面是我的解决方法&#xff1a; 初始化代码&#xff1a; # 设置…...

js的闭包

闭包是有权限访问其他函数作用域的局部变量的一个函数 代码 function outer(){const a1;function f(){console.log(a)}f()}outer() 简单来说&#xff1a;闭包内层函数引用的外层函数变量 为什么要使用闭包&#xff1f; 用此方法可以来统计函数调用次数&#xff0c; 但是如…...

ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2

环境信息&#xff1a;VMware Workstation 17 Pro ubuntu20.04 (清华源) ubuntu 源点进去选&#xff1a;ubuntu-22.04.3-desktop-amd64.iso 如果之前装过VPP&#xff0c;用以下命令确定是否卸载干净&#xff1a; dpkg -l | grep vpp dpkg -l | grep DPDK 卸载&#xff1a; …...

mysql sql 执行流程

监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制&#xff0c;以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存...

go-kafka

go kafka包 本文使用的是kafka-go 6.5k 这个包 其他包参考&#xff1a; 我们在细分市场中非常依赖GO和Kafka。不幸的是&#xff0c;在撰写本文时&#xff0c;Kafka的GO客户库的状态并不理想。可用选项是&#xff1a; 萨拉玛&#xff08;Sarama&#xff09; 10k&#xff0c;这…...

如何在windows电脑上安装多个node,并可以进行随意切换

一、进入官网http://nvm.uihtm.com/ 下载 二、启动解压后的程序 1.开始安装nvm 选择要安装的目录 一直下一步–下一步–最后点击完成 3.最后点击完成即可 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3656568c7e9946e8a04219811fc4c4d3.png 三、在cmd控制台进行操作…...

《机器学习核心技术》分类算法 - 决策树

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 决策树 1、决策树API2、决策时实际应用2.1、获取数据集2.2、划分数据集2.3、决策…...

aws PinPoint发附件demo

php 版aws PinPoint发附件demo Laravel8框架&#xff0c;安装了"aws/aws-sdk-php": "^3.257" 主要代码&#xff1a; public function sendRawMail(Request $request) {$file $request->file(attachment);/*echo count($file);dd($file);*/$filenam…...

边写代码边学习之Bidirectional LSTM

1. 什么是Bidirectional LSTM 双向 LSTM (BiLSTM) 是一种主要用于自然语言处理的循环神经网络。 与标准 LSTM 不同&#xff0c;输入是双向流动的&#xff0c;并且它能够利用双方的信息。 它也是一个强大的工具&#xff0c;可以在序列的两个方向上对单词和短语之间的顺序依赖…...

Django学习笔记-实现联机对战

笔记内容转载自 AcWing 的 Django 框架课讲义&#xff0c;课程链接&#xff1a;AcWing Django 框架课。 CONTENTS 1. 统一长度单位2. 增加联机对战模式3. 配置Django Channels 1. 统一长度单位 多人模式中每个玩家所看到的地图相对来说应该是一样的&#xff0c;因此需要固定地…...

nacos总结1

5.Nacos注册中心 国内公司一般都推崇阿里巴巴的技术&#xff0c;比如注册中心&#xff0c;SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 5.1.认识和安装Nacos Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud中的一个组件。相比Eureka功能更加丰富&#xff0c…...

Web安全测试(三):SQL注入漏洞

一、前言 结合内部资料&#xff0c;与安全渗透部门同事合力整理的安全测试相关资料教程&#xff0c;全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试&#xff0c;覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬&#xff01; 全部…...

Webstorm 入门级玩转uni-app 项目-微信小程序+移动端项目方案

1. Webstorm uni-app语法插件 &#xff1a; Uniapp Support Uniapp Support - IntelliJ IDEs Plugin | Marketplace 第一个是不收费&#xff0c;第二个收费 我选择了第二个Uniapp Support &#xff0c;有试用30天&#xff0c;安装重启webstorm之后&#xff0c;可以提高生产率…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...