---
# System prepended metadata

title: 21-8 一元二次方程式
tags: [DICE C]

---

---
tags: DICE C
---

21-8 一元二次方程式
===

> [name=CHAWTeam]

目錄：[DICE C語言程式破解](/@CHAWTeam/DiceC)

題目
---

```!
寫一個程式，重複輸入a、b、c 3個整數，直到輸入的3個整數皆為0為止。

當遇到「0 0 0」時，輸出「Game Over!!」。

解ax^2+bx+c=0的實數解，

若為兩相同實數，只需要輸出一解；

若為兩不同實數，請輸出兩解；

若無實數解，請輸出「無實數解!!」字樣。

輸入範例:
4 4 1
1 0 -9
1 1 2
0 0 0

輸出範例:
-0.500000
3.000000 -3.000000
無實數解!!
Game Over!!
```

程式碼
---

```c=
#include <stdio.h>
#include <math.h>

int main()
{
    float a, b, c, discriminant;
    scanf("%f %f %f", &a, &b, &c);
    
    while (a != 0 || b != 0 || c!= 0)
    {
        discriminant = b * b - 4 * a * c;
        if (discriminant == 0)
        {
            printf("%f\n", - b / 2 / a);
        }
        else if (discriminant > 0)
        {
            printf("%f %f\n", (- b + sqrt(b * b - 4 * a * c)) / 2 / a, (- b - sqrt(b * b - 4 * a * c)) / 2 / a);
        }
        else
        {
            printf("無實數解!!\n");
        }
        scanf("%f %f %f", &a, &b, &c);
    }
    if (a == 0 && b == 0 && c == 0)
        printf("Game Over!!\n");
    return 0;
}
```

執行
---

### 輸入

```!
4 4 1
1 0 -9
1 1 2
0 0 0
```

### 輸出

```!
-0.500000
3.000000 -3.000000
無實數解!!
Game Over!!
```

---

[查看我們在HackMD上的所有筆記](/@CHAWTeam)
目錄：[DICE C語言程式破解](/@CHAWTeam/DiceC)

---

{%hackmd Iiu5mOixR7yWkPHKCkabBg %}
<iframe class="LikeCoin" height="235" src="https://button.like.co/in/embed/chawteam/button?referrer=https://hackmd.io/@CHAWTeam/DiceC-21-8" width="100%"></iframe>

---

{%hackmd i1nMRrZcTFmTvoF897K9zg %}