欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用C語言求解一元二次方程的簡單實現(xiàn)

 更新時間:2022年11月07日 16:17:49   作者:雨落星河:Brack  
這篇文章主要介紹了用C語言求解一元二次方程的簡單實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

C語言 求解一元二次方程

在用C語言求解一元二次方程的時候,首先,最重要的肯定是要引入"math.h"這個頭文件,其次要會運用相關(guān)的數(shù)學(xué)庫函數(shù),如“sqrt”,“delta”等。

讓我們一起在代碼中尋找問題吧。

#include <stdio.h>
#include <math.h>
int main (void)
{
? ? int a = 1,b = 2,c = 1;
? ? float x1 , x2 , delta ;
? ? delta = b*b - 4*a*c ;
?
? ? if ( delta > 0 )
?
? ? {
? ? ? ? x1 = (-b-sqrt(delta)) / (2*a);
? ? ? ? x2 = (-b+sqrt(delta)) / (2*a);
? ? ? ? printf ("該方程有兩解,x1 = %f\n,x2 = %f\n",x1,x2);
? ? }
?
? ? else if (delta == 0)
? ? {
? ? ? ? x1 = (-b) / (2*a);
? ? ? ? x2 = x1;
? ? ? ? printf ("該方程有唯一解,x1 = x2 = %f\n",x1 = x2);
? ? }
?
? ? else if (delta < 0)
? ? {
? ? ? ? printf ("該方程無解\n");
? ? }
? ? return 0;
?}?

這是之前我發(fā)的第一個博客代碼,現(xiàn)在我看到“數(shù)一數(shù)二的白落”的評價后又優(yōu)化了一些,代碼如下:

#include <stdio.h>
#include <math.h>
int main (void)
{
? ? int a, b, c;
? ? printf("請輸入一元二次方程的三個系數(shù):\n");
? ? scanf("%d %d %d",&a,&b,&c);
? ? float x1 , x2 , delta ;
? ? delta = b*b - 4*a*c ;
?
? ? if ( delta > 0 )
?
? ? {
? ? ? ? x1 = (-b-sqrt(delta)) / (2*a);
? ? ? ? x2 = (-b+sqrt(delta)) / (2*a);
? ? ? ? printf ("該方程有兩解,x1 = %f\n,x2 = %f\n",x1,x2);
? ? }
?
? ? else if (delta == 0)
? ? {
? ? ? ? x1 = (-b) / (2*a);
? ? ? ? x2 = x1;
? ? ? ? printf ("該方程有唯一解,x1 = x2 = %f\n",x1 = x2);
? ? }
?
? ? else if (delta < 0)
? ? {
? ? ? ? printf ("該方程無解\n");
? ? }
? ? return 0;
?}?

求一元二次方程的解,考慮所有情況

假設(shè):ax²+bx+c=0

要求輸入a,b,c的值,判斷并求出方程的解。

有以下幾種情況:

1、a = 0

(1)b = 0

c = 0時,x可以是任意數(shù);

c != 0時,方程不成立;

(2)b != 0

方程為一元一次方程,x = - c b \frac{c} bc?

2、a != 0

(1)△ =b^2-4ac >0,方程有兩個不等的實根;

在這里插入圖片描述

(2)△ =b^2-4ac =0,方程有兩個相等的實根;

(3)△ =b^2-4ac <0,方程有兩個共軛復(fù)根;

在這里插入圖片描述

#include <stdio.h>   //編譯預(yù)處理
#include <math.h>    //編譯預(yù)處理
int main()
{
	double a,b,c,x1,x2,Delta,realpart,mipart;
	//聲明函數(shù)變量
	printf("a*x^2 + bx +c = 0,請輸入a,b,c的值:");
	scanf("%lf,%lf,%lf",&a,&b,&c);
	//獲取輸入的a,b,c三個系數(shù)的值
	//printf("%.2f,%.2f,%.2f",a,b,c);
	if (a == 0 )   //判斷a是否為0
	{
		if(b != 0)
		{
		x1 = -c / b;
		printf("方程是一元一次方程,x1=%.2f\n",x1);
		}
		else 
		{
		if (c ==0)   printf("x可以是任意值。\n");
		else  printf("方程不成立。\n");
		}
	}
	else
	{
		Delta = pow(b,2) - 4*a*c;   
		//判斷delta的值
		if (Delta>0)
		{
			x1 = (-b+sqrt(Delta)) / (2*a);
			x2 = (-b-sqrt(Delta)) / (2*a);
			printf("方程的兩個根為x1 = %.2f,x2 = %.2f\n",x1,x2);
		}
		else
		{
			if (Delta == 0)
			{
				x1 = - b/(2*a);
				x2 = - b/(2*a);
				printf("方程有兩個相等的根:\nx1=%.2f\nx2=%.2f\n",x1,x2);
			}
			else
			{
				realpart = - b/(2*a);        //實部
				mipart = sqrt(-Delta) / (2*a);
				printf("方程有兩個共軛復(fù)根:\n");
				printf("x1 = %.2f+%.5fi\n",realpart,mipart);   
				//人為地加了i,以表示虛部
				printf("x2 = %.2f-%.5fi\n",realpart,mipart);
			}
		}
	}
	return 0;
}
//每個if和else都用花括號{}包起來,這樣程序識別時候不會認(rèn)為else沒有匹配的if。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++17中的std::optional的具體使用

    C++17中的std::optional的具體使用

    這篇文章主要介紹了C++17中的std::optional的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C++判斷一個點是否在圓內(nèi)的方法

    C++判斷一個點是否在圓內(nèi)的方法

    這篇文章主要為大家詳細(xì)介紹了C++判斷一個點是否在圓內(nèi)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C++中set的用法學(xué)習(xí)

    C++中set的用法學(xué)習(xí)

    Set是C++?STL(標(biāo)準(zhǔn)模板庫)的一個容器類,它用于存儲不同的值,并且可以按照特定順序進(jìn)行訪問和操作。本文就來通過一些示例和大家簡單講講set的用法吧
    2023-05-05
  • 判斷一個數(shù)是不是素數(shù)的方法

    判斷一個數(shù)是不是素數(shù)的方法

    判斷一個數(shù)是不是素數(shù)的方法,需要的朋友可以參考一下
    2013-03-03
  • 深入理解C++中常見的關(guān)鍵字含義

    深入理解C++中常見的關(guān)鍵字含義

    本篇文章是對C++中常見關(guān)鍵字的含義進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 關(guān)于C++菱形運算符深度解析

    關(guān)于C++菱形運算符深度解析

    從語言標(biāo)準(zhǔn)來說,c++里沒有什么菱形運算符,c++20里雖然新增了一個運算符operator<=>,但這個和所謂的菱形運算符沒有任何關(guān)系,下面通過本文探討C++里也有菱形運算符嗎這一問題探討,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • C++?ROS與boost:bind()使用詳解

    C++?ROS與boost:bind()使用詳解

    boost::bind是標(biāo)準(zhǔn)庫函數(shù)std::bind1st和std::bind2nd的一種泛化形式,其可以支持函數(shù)對象、函數(shù)、函數(shù)指針、成員函數(shù)指針,并且綁定任意參數(shù)到某個指定值上或者將輸入?yún)?shù)傳入任意位置,本文重點介紹下C++?ROS與boost:bind(),感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • __stdcall 和 __cdecl 的區(qū)別淺析

    __stdcall 和 __cdecl 的區(qū)別淺析

    __stdcall 和 __cdecl 的區(qū)別淺析,需要的朋友可以參考一下
    2013-03-03
  • C++中l(wèi)ist容器的實現(xiàn)

    C++中l(wèi)ist容器的實現(xiàn)

    本文主要介紹了C++中l(wèi)ist容器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C++ 超詳細(xì)深入分析單例模式

    C++ 超詳細(xì)深入分析單例模式

    單例模式(Singleton Pattern)是最簡單的設(shè)計模式之一。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式,這種模式涉及到一個單一的類,該類負(fù)責(zé)創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建
    2022-03-03

最新評論