求方程式的根

*尚不清楚问题点* 巴西项目/
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
float x1,x2,disc,p,q;

int main()
{
 void bigger(float,float);
 void equal(float, float);
 void smaller(float,float);
 float a,b,c;
 disc=b*b-4*a*c;
 printf("please input a,b,c:\n");
 scanf("%f,%f,%f",&a,&b,&c);
 if(disc>0)
 {
  bigger(a,b);
  printf("x1=%f\t\tx2=%f\n",x1,x2);
  }
 else if(disc==0)
 {
  equal(a,b);
  printf("x1=%f\t\tx2=%f\n",x1,x2);
  }
 else
 {
  smaller(a,b);
     printf("x1=%f\n,x2=%f",x1,x2);
  }
 return 0;
}

void bigger(float a,float b)
{
 x1=(-b+sqrt(disc))/(2*a);
 x2=(-b-sqrt(disc))/(2*a);
}
void equal(float a, float b)
{
 x1=x2=-b/2*a;
}
void smaller(float a, float b)
{
 p=-b/2*a;
 q=sqrt(-disc)/(2*a);
}

原文地址:https://www.cnblogs.com/pquan/p/10884285.html

时间: 2024-10-21 12:45:41

求方程式的根的相关文章

【c语言】求方程式 ax^2+bx+c=0 的根,分别考虑:1、有两个不等的实根 2、有两个相等的实根

// 求方程式 ax^2+bx+c=0 的根,分别考虑:1.有两个不等的实根 2.有两个相等的实根 #include <stdio.h> #include <math.h> int main() { int d; int a,b,c; double x,y; double f; printf("请输入a,b,c:"); scanf("%d%d%d",&a,&b,&c); d = b*b-4*a*c; f = sqrt(

C语言-郝斌笔记-001求二次方程的根

求二次方程的根 1 #include <stdio.h > 2 #include<math.h> 3 int main(void) { 4 //把三个系数保存到计算机中 5 int a = 1; //=不表示相等,表示赋值 6 int b = 4; 7 int c = 4; 8 double delta; //delta存放的是b*b-4*a*c 9 double x1; //存放一元二次方程的其中一个解 10 double x2; //存放一元二次方程的其中一个解 11 delt

OJ刷题之《求方程的根》

题目描述 求方程 的根,用三个函数分别求当b^2-4ac大于0.等于0.和小于0时的根,并输出结果.从主函数输入a.b.c的值. 输入 a b c 输出 x1=? x2=? 样例输入 4 1 1 样例输出 x1=-0.125+0.484i x2=-0.125-0.484i 提示 主函数已给定如下,提交时不需要包含下述主函数 /*  C代码或C++代码   */ int main() { float a,b,c,q; void shigen(float,float,float); void den

Openjudge ch0111/t6253 用二分法求方程的根

这题只是考你最后有没有(r-l)/2而已…… 总时间限制: 1000ms 内存限制: 65536kB 描述 用二分法求下面方程在(-10, 10)之间的一个根. 2x3- 4x2+ 3x- 6 = 0 输入 一个小于1的非负实数e,它的值表示所能允许的误差 输出 一个实数,其值为求得的一个根,要求精确到小数点后8位.若该区间上没有根,则输出“No Solution” 样例输入 0 样例输出 2.00000000 提示 对于一个连续函数f(x),若f(a)*f(b) <= 0,则f(x)在区间[a

二分法求三次方程的根

二分法求根 #include "stdio.h" #define f(x) a*x*x*x+b*x*x+c*x+d int main() { freopen("in.txt", "r", stdin); int a, b, c, d; double x1, x2, x, y1, y2, y; while (scanf("%d%d%d%d", &a, &b, &c, &d) != EOF) { x

计算方法-C/C++牛顿迭代法求非线性方程近似根

把f(x)在x0附近展开成泰勒级数f(x) = f(x0)+f'(x0)(x-x0)+f''(x0)/2!*(x-x0)^2+...然后取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x) = f'(x0)x - x0*f'(x0) + f(x0) = 0f'(x0)x = x0*f'(x0) - f(x0)x = x0 - f(x0)/f'(x0)得到牛顿的一个迭代序列:->x(n+1) = x(n)-f(x(n))/f'(x(n)) 例:求方程f(x) =

MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根

一.实验原理 二.实验步骤 三.实验过程 1.(程序) (1)二分法:求   在区间(1,2)之间的根,取 (a)bipart.m: function [x,m]=bipart(fun,a0,b0,tol) a=a0;b=b0; m=1+round(round(log((b-a)/tol))/log(2)); for k=1:m p=(a+b)/2; if fun(p)*fun(b)<0 a=p; else b=p; end x=p; end end (b)fun1.m: function f=

C语言之基本算法24—黄金切割法求方程近似根

//黄金切割法! /* ================================================================ 题目:用黄金切割法求解3*x*x*x-2*x*x-16=0的根. ================================================================ */ #include<stdio.h> #include <math.h> #define E 1e-8 double hs(doub

谭浩强 C程序设计 8.2 求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。

#include<stdio.h> #include<math.h> int main() { float a,b,c,q; void lianggegen(float a,float b,float q); void dangen(float a,float b,float q); void fushugen(float a,float b,float q); printf("输入 a b c 的值,以空格分隔:\n "); scanf("%f%f%