С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Квадратное уравнение (найти ошибку) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка нажатия клавиши http://www.cyberforum.ru/cpp-beginners/thread1495324.html
нужно задать нажатию клавиши enter другие функции: private: System::Void textBox1_TextChanged_1(System::Object^ sender, System::EventArgs^ e) { if (Control::ModifierKeys == Keys::Enter) {...
C++ Шаблоны В файле есть такое определение template<int32 aMaxLength> class TTextBuffer: public MString { public: /** Construct an empty TTextBuffer object. */ TTextBuffer() { } /** Construct a... http://www.cyberforum.ru/cpp-beginners/thread1495307.html
Разработка программы Генератора Псевдослучайной Последовательности C++
Всем привет! Есть задача: написать программу Генератора Псевдослучайной Последовательности (ГПСП) на С(С++). Полином для ГПСП: x^85+x^49+x^17+1. С чего начать ребят? Может кто-нибудь че делал...
C++ Работа с базой данных web
Здравствуйте, уважаемые пользователи форума. Очень нужна ваша помощь. Требуется реализовать программу, работа которой по идее очень проста. есть две таблицы (например 2 excel файла или БД;...
C++ Как спросить да и нет в MSGBOX и выполнить разные действия в зависимости от результата? http://www.cyberforum.ru/cpp-beginners/thread1495275.html
MessageBox( NULL, "Не удаётся найти файл базы данных ключей,найти её?", "Отсутствует база ключей", MB_YESNO| MB_DEFBUTTON1 | MB_ICONERROR| MB_DEFAULT_DESKTOP_ONLY ); А результат как cделать...
C++ Переместить элемент внутри списка std::list Что-то я не пойму, простая вроде задача - переместить элемент внутри спиcка std::list - стандартной функции нету что-ли? подробнее

Показать сообщение отдельно
Melvil
48 / 47 / 13
Регистрация: 20.05.2015
Сообщений: 251

Квадратное уравнение (найти ошибку) - C++

08.07.2015, 13:21. Просмотров 788. Ответов 9
Метки (Все метки)

Добрый день, решал вот такую задачку, однако она не проходит один из тестов, помогите найти ошибку. Также, как я понял, при отсутствии корней нужно вывести просто 0 - как-то умалчивается об этом в условии. Спасибо.

Сложно найти человека, который любит решать однообразные задачки по математике. В последнее время школьникам стало легче, ведь с появлением компьютеров почти в каждой квартире стало существенно проще проверять себя.

Но программы, в которых решение уравнений является стандартной функцией, установлены не везде. Напишите программу, которая сможет решить уравнение

ax2 + bx + c = 0

при заданных коэффициентах a, b и c.
Входные данные

Единственная строка входного файла INPUT.TXT содержит три целых числа a, b и c, каждое из которых не превосходит по модулю 30000. Числа разделяются пробелами.

Выходные данные

На первой строке выходного файла OUTPUT.TXT выведите число действительных корней заданного уравнения. Затем выведите сами корни по одному на строке с ошибкой, не превосходящей 10-4. Если для заданных коэффициентов корней бесконечно много, на единственной строке выходного файла выведите -1.

Моё решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iomanip>
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
    float D, x1 ,x2,a,b,c;
    cin >> a >> b >> c;
    if (a)
    {
        D = b*b - 4 * a*c;
        if (D > 0)
        {
            x1 = (-b + sqrt(D)) / 2 * a;
            x2 = (-b - sqrt(D)) / 2 * a;
            cout << 2 << endl;
            cout << fixed << setprecision(6) << x1 << endl;
            cout << fixed << setprecision(6) << x2 << endl;
        }
        else if (D == 0)
        {
            x1 = -b / (2 * a);
            cout << 1 << endl;
            cout << fixed << setprecision(6) << x1 << endl;
        }
        else
            cout << 0 << endl;
    }
    else if (a == 0 && b == 0 && c == 0)
    {
        cout << -1 << endl;
    }
    else if (a == 0 && b != 0)
    {
        x1 = -c / b;
        cout << 1 << endl;
        cout << fixed << setprecision(6) << x1 << endl;
    }   
    else if (a == 0 && b == 0)
    {
        cout << 0 << endl;
    }
    else
    {
        return 1;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.