C语言——若 ax2+bx+c=0 有实根,则求之。

news/2024/2/21 10:47:04

一、问题

        若 ax2+bx+c=0 有实根,则求之。

二、解答

#include <stdio.h>
#include <math.h>int main()
{int a, b, c;double sum, x1, x2;printf("a=");if (scanf("%d", &a) != 1){printf("Invalid input for a\n");return 1;}printf("b=");if (scanf("%d", &b) != 1){printf("Invalid input for b\n");return 1;}printf("c=");if (scanf("%d", &c) != 1){printf("Invalid input for c\n");return 1;}if (a == 0){printf("a cannot be zero in a quadratic equation\n");return 1;}sum = (b * b) - (4 * a * c);if (sum > 0){printf("有两个不相等的实数根:\n");x1 = (-b + sqrt(sum)) / (2 * a);x2 = (-b - sqrt(sum)) / (2 * a);printf("x1=%.2lf\nx2=%.2lf\n", x1, x2);}else if (sum == 0){printf("有两个相等的实数根:\n");x1 = x2 = (-b) / (2 * a);printf("x1=%.2lf\nx2=%.2lf\n", x1, x2);}else{printf("无实根\n");}return 0;
}

 输出结果:

a=1
b=-4
c=4
一元二次方程: 1x^2+-4x+4=0
方程有两个相等的实数根:
x1=2.00
x2=2.00

三、总结

    该C语言程序定义了一个计算二次方程ax^2 + bx + c = 0根的函数,通过用户交互获取输入
参数a、b、c。以下是该程序详细步骤:1、输入阶段:程序首先在控制台输出字符串 "a=" 并等待用户输入整数a。使用scanf函数尝试读取一个整数
并存储到变量a中,如果输入不是整数,则输出错误信息"Invalid input for a"并返回1,结束程
序。类似地,程序分别询问用户输入b和c,并进行相同的数据验证。2、预处理阶段:验证系数a是否为零。若a为零,由于二次项不存在,无法构成二次方程,因此输出错误信息"a 
cannot be zero in a quadratic equation"并返回1,结束程序。3、计算判别式:计算二次方程的判别式 sum = (b * b) - (4 * a * c)。判别式的值决定了方程根的情况。
解方程与输出结果:情况一:sum > 0,表示方程有两个不相等的实数根,利用公式x1 = (-b + sqrt(sum)) / (2 * a)
和x2 = (-b - sqrt(sum)) / (2 * a)计算这两个根,并将结果保留两位小数后输出。情况二:sum == 0,表示方程有且仅有一个重根,即两个相等的实数根,此时x1 = x2 = -b / (2 * a),
计算后同样保留两位小数输出。情况三:sum < 0,表示方程无实数根,直接输出"无实根"。4、程序结束:执行完上述所有操作后,程序返回0,表示成功执行完毕。


https://www.xjx100.cn/news/3271431.html

相关文章

Atcoder ABC339 A-D题解

比赛链接:ABC339 Problem A: 简单题。但是相比于之前的A题来说还是变难了。直接上代码: #include <bits/stdc.h> using namespace std; int main(){string str;cin>>str;int pos-1;for(int i1;i<str.size();i){if(str[i].)posi;}cout<<str.substr(pos1…

fast.ai 深度学习笔记(三)

深度学习 2&#xff1a;第 1 部分第 6 课 原文&#xff1a;medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-6-de70d626976c 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它&#xff0c;这…

2013-2022年上市公司迪博内部控制指数、内部控制分项指数数据

2013-2022年上市公司迪博内部控制指数、分项指数数据 1、时间&#xff1a;2013-2022年 2、范围&#xff1a;上市公司 3、指标&#xff1a;证券代码、证券简称、辖区、证监会行业、申万行业、内部控制指数、战略层级指数、经营层级指数、报告可靠指数、合法合规指数、资产安全…

【国产MCU】-CH32V307-基本定时器(BCTM)

基本定时器(BCTM) 文章目录 基本定时器(BCTM)1、基本定时器(BCTM)介绍2、基本定时器驱动API介绍3、基本定时器使用实例CH32V307的基本定时器模块包含一个16 位可自动重装的定时器(TIM6和TIM7),用于计数和在更新新事件产生中断或DMA 请求。 本文将详细介绍如何使用CH32…

Leetcode 718 最长重复子数组

题意理解&#xff1a; 给两个整数数组 nums1 和 nums2 &#xff0c;返回 两个数组中 公共的 、长度最长的子数组的长度 。 如&#xff1a; nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 则最长重复子序列为&#xff1a; 321 长度为3 这里采用动态规划解决这个问题。最长公共子序…

使用word2vec+tensorflow自然语言处理NLP

目录 介绍&#xff1a; 搭建上下文或预测目标词来学习词向量 建模1&#xff1a; 建模2&#xff1a; 预测&#xff1a; 介绍&#xff1a; Word2Vec是一种用于将文本转换为向量表示的技术。它是由谷歌团队于2013年提出的一种神经网络模型。Word2Vec可以将单词表示为高维空间…

ctfshow-php特性(web102-web115)

目录 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web114 web115 实践是检验真理的 要多多尝试 web102 <?php highlight_file(__FILE__); $v1$_POST[V1]; $v2$_GET[v2]; $v3$_GET[v3]; $v4is_numeric($v2)and is…

MATLAB Coder从入门到放弃

一、MATLAB Coder入门 1 MATLAB Coder是什么 从 MATLAB 代码生成 C 和 C 代码 MATLAB Coder™ 可从 MATLAB 代码生成适用于各种硬件平台&#xff08;从桌面计算机系统到嵌入式硬件&#xff09;的 C 和 C 代码。它支持大多数 MATLAB 语言和广泛的工具箱。您可以将生成的代码作…