Программа, решающая квадратные уравнения выдает некорректный результат - C#

Узнай цену своей работы

Формулировка задачи:

Пишу программу решающую квадратные уравнения, вроде все считает, считает правельно, но дает ответ допустим должно получится х1 = 1 х2 = -3 он выводит ответ х1 = 1,24235236236236235 и х2= -3, 352523523523523 Как убрать все числа после запятой???? пробовал Math.Round(x1, 1) или 0 но он их округляет.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double q, x1, x2;
            int  a, b, c;
            Console.Write("a = ");
            a = Convert.ToInt32(Console.ReadLine());
            Console.Write("b = " );
            b = Convert.ToInt32(Console.ReadLine());
            Console.Write("c = " );
            c = Convert.ToInt32(Console.ReadLine());
 
               q = Math.Pow(b,2) - 4 * a * c;
 
            if (b < 0)
                {
                    Console.WriteLine("Дискриминант отрицательный, корней нет");
                }
            else
            if (a > 0)
            {
 
                x1 = (-b + Math.Sqrt(q - 4 * a * c)) / (2 * a);
                x2 = (-b - Math.Sqrt(q - 4 * a * c)) / (2 * a);
                Console.Write("Дискриминант = " + q + "\nх1 = " + x1 + "\nx2= " + x2);
            }
            Console.ReadLine();
        }
    }
}

Решение задачи: «Программа, решающая квадратные уравнения выдает некорректный результат»

textual
Листинг программы
public static void Main()
{
    double q, x1, x2;
    int a, b, c;
 
    Console.Write("a = ");
    a = Convert.ToInt32(Console.ReadLine());
    Console.Write("\nb = ");
    b = Convert.ToInt32(Console.ReadLine());
    Console.Write("\nc = ");
    c = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine();
 
    if (a == 0)
    {
        if (b == 0) Console.WriteLine(c == 0 ? "x - любое." : "Нет решений.");
        else Console.WriteLine("Решение: x = -c/b = {0}/{1} = {2}.", -c, b, -c / b);
        return;
    }
 
    q = b * b - 4 * a * c;
 
    if (Math.Abs(q) < 1E-12)
    {
        Console.WriteLine("Решение: x = -b/2a = {0}/{1} = {2}.", -b, 2 * a, -b / (2 * a));
        return;
    }
 
    if (q < 0)
    {
        Console.WriteLine("Нет решений. Дискриминант = {0}.", q);
        return;
    }
 
    x1 = (-b + Math.Sqrt(q)) / 2 * a;
    x2 = (-b - Math.Sqrt(q)) / 2 * a;
    Console.WriteLine("Решение: x1 = [-b + sqrt(q)]/2a = [{0} + {1}]/{2} = {3} \nx2 = [-b - sqrt(q)]/2a = [{0} - {1}]/{2} = {4}",
        -b, Math.Sqrt(q), 2 * a, x1, x2);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы