формула — Решатель квадратного уравнения в переполнении стека

Я попытался сделать решатель квадратного уравнения в php:

index.html:

<html>
<body>
<form action="findx.php" method="post">
Find solution for ax^2 + bx + c<br>
a: <input type="text" name="a"><br>
b: <input type="text" name="b"><br>
c: <input type="text" name="c"><br>
<input type="submit" value="Find x!">
</form>
</body>
</html>

findx.php:

<?php
if(isset($_POST['a'])){ $a = $_POST['a']; }
if(isset($_POST['b'])){ $b = $_POST['b']; }
if(isset($_POST['c'])){ $c = $_POST['c']; }

$d = $b*$b - 4*$a*$c;
echo $d;

if($d < 0) {
echo "The equation has no real solutions!";
} elseif($d = 0) {
echo "x = ";
echo (-$b / 2*$a);
} else  {
echo "x1 = ";
echo ((-$b + sqrt($d)) / (2*$a));
echo "<br>";
echo "x2 = ";
echo ((-$b - sqrt($d)) / (2*$a));
}
?>

проблема в том, что он возвращает неправильные ответы (d верно, x1 и x2 нет), похоже, что sqrt () возвращает ноль или что-то еще.

1

Решение

В этой строке есть опечатка:

elseif($d = 0)

который назначение Значение 0 в $d вместо того, чтобы сравнивать это. Это означает, что вы всегда оцениваете sqrt(0), который равен 0, в вашем else блок.

Так должно быть:

elseif($d == 0)

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector