以實例跟我學C語言:如何求解一元二次方程的根

2021-01-10 編碼那些事

注意:這是一篇關於C語言編程的基礎語法內容,C語言大神請繞過。

例子說明

對於如下的一元二次方程:

設計C語言程序,輸入一元二次方程的三個係數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的係數,以求解不同的一元二次方程的解。

編程思路分析

對於該方程,令delta=b^2-4*a*c,從數學的角度來講,我們需要根據delta的值來判斷該方程的根情況:

當delta>=0時,其兩個根為實數解,分別為(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

當delta<0時,其兩個根為複數解,實部皆為-b/(2*a),虛部分別為sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表對delta作開根號運算。

在代碼設計中,可定義一個結構體Complex存儲該方程的根,在該結構體中包括實部和虛部兩個變量,如下所示:

在程序中,定義兩個Complex類型的根x1和x2,當delta>=0時,兩個根的虛部為0,否則,分別求解兩個根的虛部值。

C語言實現實現代碼

根據上面的分析,C語言的實現代碼如下:

下面對代碼作簡要說明:

第1-3行包含程序必需的頭文件,其中第3行包含<windows.h>的目的是在第14行能夠調用SetConsoleTitle函數修改控制臺窗口的標題。

第16-18行是程序內部變量的定義,其中,字符型變量k用以控制while循環是否繼續運行,作另一次方程的求解。

第20-42行在while循環內部求解一元二次方程的根,每次循環開始時,根據k的值判斷是否進入循環。

第24行「while(getchar()!='\n');」,其目的是清空輸入緩衝區的內容,getchar函數每次從緩衝區中取出一個字符,只要取出的字符不是回車就一直取,這樣可以緩衝區中所有的無效字符都取出來,直到用戶按下回車鍵為止。清空輸入緩衝區的內容後,在第48行輸入k的值時才能接收到正確的字符值。

第44-45行,使用printf函數在控制臺窗口上列印兩個根的值,格式符「%10.5f」代表列印的數字格式為:佔10個字符的寬度並且保留5位小數。

第47-48行,使用scanf函數接收用戶的輸入放到k中,只有當用戶輸入』y』字符時,while繼續運行,否則退出while循環。

程序運行結果如下圖所示,可以分別求出實數解和算數解的情況:

總結

這個例子程序比較簡單,但涉及到的C語言知識點不算少,包括:while循環、if/else、結構體、getchar函數、printf函數、scanf函數、控制臺窗口標題設置等。

如果你覺得這篇文章對你有用的話,請不要忘記點讚哦。

相關焦點

  • LabVIEW編程:使用公式節點,簡化程序代碼,求解一元二次方程根
    公式節點與C語言語言的區別在於一些變量類型的聲明上有著細微區別。利用公式節點,將數學公式的文本表達式輸入在公式節點的框圖內,並連接相應的輸入、輸出埠,則LabVIEW會自動根據公式計算出正確的結果,並從輸出端輸出。下面通過使用公式節點求解一元二次方程的例子,說明公式節點的編程方法。
  • 一元二次方程的解法,一元二次方程係數與根的關係運用
    今天分享的內容——一元二次方程的知識一.一元二次方程的概念二.降次——解一元二次方程直接開平方法體現了降次思想,將一元二次方程轉化為兩個一元一次方程來解這裡我就不舉例了。例1解法:配方法就是完全平方公式的逆運算。
  • 怎麼用適當的方法解一元二次方程?
    解一元二次方程,當然是要先明確什麼是一元二次方程。一元二次方程是有且只有一個未知數,未知數的最高次數是2的整式方程。首先,方程有一個未知數,象1+2=3這樣的等式,就不是方程。其次一元方程只有一個未知數,象x+y=1這樣的方程,就不是一元方程。
  • Excel求解多元一次、一元二次方程組就是這麼簡單!
    一元二次方程先了解下概念:只含有一個未知數(一元),並且未知數項的最高次數是2(二次)的整式方程叫做一元二次方程 。一元二次方程經過整理都可化成一般形式ax+bx+c=0(a≠0);其中ax叫作二次項,a是二次項係數;bx叫作一次項,b是一次項係數;c叫作常數項。通用求解公式:既然有通用求解公式,那我們參照這公式在Excel中輸入即可。
  • 中考數學天天練之公式法求解一元二次方程練習題以及答案詳解
    走進2020年中考數學練習題之一元二次方程習題練習第二講本次課程我們主要來帶著大家練習一下如何使用公式法求解一元二次方程的根,通過這次課程學生要能靈活使用公式求解一元二次方程的根;習題目錄和分值題目分為四道大題,總共100分,分別為:一道選擇題
  • 例題詳解,如何利用圖像求一元二次方程的根?
    今天是2019年3月19日,我分享的內容是如何利用圖像求一元二次方程的根。方程與函數是初中數學中的重要內容,方程與函數之間存在著密切的聯繫,二次函數的圖像與x軸交點的橫坐標即為相應的一元二次方程的解,課程標準要求我們能利用二次函數的圖象求一元二次方程的近似解,下面舉例說明。
  • 要想學好二次函數,那麼必須先學好一元二次方程,這是程序
    方程不僅是現實生活中建立模型,解決生產工作遇到問題的重要方法,也是數學學習中相當重要的一部分。一元二次方程作為方程當中的重要組成部分,自然是大家的學習重點。 一元二次方程不僅是一元一次方程與數的二次開方的延續,也是二次函數、一元二次不等式和二次曲線等的基礎。
  • 2020數學同心迎中考:一元二次方程根的判別式,每年中考故事多
    答案A試題分析:考點AA:根的判別式;C4:在數軸上表示不等式的解集.分析根據一元二次方程的定義結合根的判別式,即可得出關於k的一元一次不等式組,解之即可得出k的取值範圍,將其表示在數軸上即可得出結論.解答解:根據一元二次方程的定義結合根的判別式,由關於x的一元二次方程(k+1)x2+2(k+1)x+k﹣2=0有實數根,可得出關於k的一元一次不等式組 ,解得:k>﹣1.將其表示在數軸上為.故選:A.
  • 如何學好一元二次方程?2020年中考真題彙編顯示:重點也就5個
    一元二次方程是初中數學的重點和難點,但不少學生在學習過程中常常把握不住重點,以致學習事倍功半。如何學好一元二次方程?2020年的中考真題彙編在一起,從中我們不難發現這章的幾個重點。利用配方法解方程時應該遵循的步驟:(1)把方程化為一般形式ax2+bx+c=0;(2)把方程的常數項通過移項移到方程的右邊;(3)方程兩邊同時除以二次項係數a;(4)方程兩邊同時加上一次項係數一半的平方;(5)此時方程的左邊是一個完全平方式,然後利用平方根的定義把一元二次方程化為兩個一元一次方程來解。
  • 中考數學解題方法——一元二次方程的特殊根
    【解題策略】1、一元二次方程的有理根關於x的一元二次方程ax+bx+c=0(a≠0,a,b,c為有理數)存在有理根的條件為:b-4ac是一個有理數的平方。解決一元二次方程ax+bx+c=0(a≠0,a,b,c為有理數)的有理根問題時,一般的解題策略有:(1)利用「判別式的取值範圍」解題:①討論二次項係數的情況,當a≠0時,求出判別式;②根據已知條件得待定係數的取值範圍,再求出判別式的取值範圍,篩選出其中為有理數的平方的數;③求出待定係數的可能取值,並檢驗.
  • 初三數學期末考試必考考點之一元二次方程及其根的考點詳解
    初三數學期末考試必考考點之一元二次方程及其根的考點詳解本課程適用於九年級以及九年級以上的學生,尤其是針對即將參加2019年期末測試的九年級的學生,快來跟我們一起學習吧,爭取在期末測試獲取理想成績哦!符號說明:x的二次方,記作:x^2。乘法符號記作*,如2乘以2記作:2*2。
  • 初中數學一元二次方程根與係數的關係,韋達定理一定要學透
    學習一元二次方程,就必須要提到韋達定理,這個定理的重要性超乎你的想像,和它的諧音一樣,偉大定理。它很形象,很簡便的展示了根和係數的關係。在我們日常解題的過程中,為我們省去大量的時間一.韋達定理如果ax^2+bx+c=0(a≠0)的兩根是x1,x2,當△≥0時,則x1+x2=-(b/a),x1·x2=c/a,1/X1+1/X2=(X1+X2)/X1·X2特別地,當一元二次方程的二次項係數為1時,設x1,x2是方程x^2+bx+c=0則x1+x2=-b,x1·x2=c,這兩個式子反映了一元二次方程的兩根之積與兩根之和同係數
  • 初三數學《一元二次方程》題型分類總結
    一元二次方程作為進入初三的第一個章節,其重要性不言而喻,一元二次方程即是中考數學中的重要考察章節,也為二次函數的學習打下基礎。換言之,學好一元二次方程的內容將會給初中數學最重要最難的二次函數部分打下堅實的基礎。
  • 九年級數學之一元二次方程習題練習
    一元二次方程求解方法匯總,有題,有方法,哪裡不會學哪裡hello,大家好,這裡是尖子生數理化教育,很高興又在這裡跟大家交流學習技巧了。這次課程我們來為大家講一下一元二次方程求解根的方法和技巧,教你輕鬆拿下一元二次方程根的求解。
  • 暑假備戰中考:這裡有一份用公式法解一元二次方程的自學檢測題
    大家快快去檢測一下自己對這一課時的內容學得如何吧01閱讀說明因網頁不支持數學公式,所有試題請以圖片為準(武漢校級月考)用公式法解一元二次方程3x2-2x+3=0時,首先要確定a,b,c的值,下列敘述正確的是()A.a=3,b=2,c=3 B.a=-3,b=2,c=3C.a=3,b=2,c=-3 D
  • 中考數學考點之一元二次方程習題練習
    韋達定理和一元二次方程在中考中的考題練習,教你輕鬆學韋達定理嗨,大家好,這裡是尖子生數理化教育,這次課程我們來為大家講一下中考數學必考的考點之一元二次函數,教你輕鬆學二次函數。習題1:已知方程的兩個根,求方程的表達式求一個一元二次函數,使得它的兩個根分別為方程x的平方-5x+6=0各根的相反數。(難度係數:5,開放類型的題)解:x的平方-5x+6=0得方程的兩個根為2,3,因此可以構造方程(x+2)(x+3)=0,即為所求的一元二次方程。
  • 中考數學第一輪複習6,一元二次方程考點梳理,明確複習方向
    一元二次方程是初中數學的重點和難點,在近幾年常以應用題和綜合題的形式出現,所佔分值5至10分。預計2019年將考察一元二次方程的解、根的判別式及應用,以此為工具和手段解決綜合問題,考查形式多樣;一次函數與反比例函數、二次函數圖象的交點問題也會涉及此內容。
  • 初三數學:一元二次方程中根與係數的關係——韋達定理
    我們前面學習過了一元二次方程的求根公式,發現方程的解與各個項的係數有一定的內在聯繫,那麼我們在公式法的基礎上又推導了韋達定理,我們來看下韋達定理的基礎內容和它的推導過程。也就是說韋達定理可以幫助我們快速得求得兩根之和及兩根之積,而不需要具體得去求解方程。
  • 暑假備戰中考:一元二次方程,開啟初三數學自學新篇章
    ,它的二次項係數為2,一次項係數為3,常數項為-5,則這個一元二次方程是.知識點2一元二次方程的根6.下列是方程3x2+x-2=0的解的是()A.x=-114.若方程ax2+5=(x+2)(x-1)是關於x的一元二次方程,則.
  • 2020數學同心迎中考:一元二次方程概念及解法,備戰中考免費資料
    分析: 首先利用因式分解法解一元二次方程求出k和b的值,然後判斷函數y=x﹣的圖象不經過的象限即可.解答: 解:∵k、b是一元二次方程(2x+1)(3x﹣1)=0的兩個根,且k>b,∴k=,b=﹣,∴函數y=x﹣的圖象不經過第二象限,故選B.