C语言解一元二次方程的实现代码

2023年 7月 18日 71.2k 0

《Programming Abstractions In C》今日完成进度:p67-p68,通过解一元二次方程来理解指针的其中一个用途:Pointers facilitate sharing data between different parts of a program。完整代码见:https://github.com/codists/Programming-Abstractions-In-C

/*
* File: quadeq.c
* --------------
* This program finds roots of the quadratic equation
*
* ax^2 + bx + c = 0
* 问题:
* 1.如何获取输入的值?
*/
#include
#include
#include "genlib.h"
#include "simpio.h"

/*
* 函数原型(Private function prototype)
*/
static void GetCoefficients(double *pa, double *pb, double *pc);
static void SolveQuadratic(double a, double b, double c, double *px1, double *px2);
static void DisplayRoots(double x1, double x2);

/*

*/
void GetCoefficients(double *pa, double *pb, double *pc) {
printf("Enter coefficients of quadratic equation:\n");
/*
*1.一次性全部输入还是逐个输入? 答:逐个输入。
*2.因为a, b, c还要给下一个函数使用,所以传递的是指针(引用传递)。
*
*/
printf("请输入第1个系数a:\n");
scanf("%lf", pa);
printf("请输入第2个系数b:\n");
scanf("%lf", pb);
printf("请输入第3个系数c:\n");
scanf("%lf", pc);
}

static void SolveQuadratic(double a, double b, double c, double *px1, double *px2) {
/*
*1.如何解一元二次方程?答:求根公式,x=(-b ± √(b^2-4ac))/2a。
*2.数学运算:(1)求根?sqrt();(2)求幂?pow()。
*3.因为a, b, c没有涉及到修改,所以值传递,而x1, x2, 计算出来还要返回给一个函数使用,所以采用
*应用传递。
*4.特殊情况处理:(1)a==0,此时不是一元二次方程。(2)b^2-4ac

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论