Форум программистов, компьютерный форум CyberForum.ru

Решение квадратного уравнения - C++

Восстановить пароль Регистрация
 
Vladka1308
0 / 0 / 0
Регистрация: 12.04.2014
Сообщений: 4
12.05.2014, 17:07     Решение квадратного уравнения #1
Ребят, нужен пример квадратного уравнения с условиями:
1."Некорректный ввод данных
2.Уравнение имеет бесконечное множество корней

и потом ещё три условия, когда D>0, <0 , =0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 17:07     Решение квадратного уравнения
Посмотрите здесь:

Решение квадратного уравнения C++
C++ Решение квадратного уравнения
C++ решение квадратного уравнения С++
C++ Решение квадратного уравнения
Решение квадратного уравнения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,207
Завершенные тесты: 1
12.05.2014, 19:16     Решение квадратного уравнения #2
Квадратное уравнение, где ошибка?
квадратное уравнение
И еще море других в этой теме.
ture
 Аватар для ture
417 / 310 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
03.12.2015, 08:46     Решение квадратного уравнения #3
Даны действительные коэффициенты a, b, c. Решите уравнение ax2 + bx + c = 0 и выведите все его корни.

Формат входных данных
Вводятся три действительных числа.
Формат выходных данных
Если данное уравнение не имеет корней, выведите число 0. Если уравнение имеет один корень, выведите число 1, а затем этот корень. Если уравнение имеет два корня, выведите число 2, а затем два корня в порядке возрастания. Если уравнение имеет бесконечно много корней, выведите число 3.
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
#include <iostream>
#include <cmath>
 
int main() {
  double a,b,c;
  std::cin >> a>> b>> c;
  std::cout << std::fixed << std::showpoint;
  std::cout.precision(6);
    if(a){
    double d=b*b-4*a*c;
  
    if(d>0){
     if (a>0)
         std::cout<< 2 <<" "<< (-b-std::sqrt(d))/(2*a) << " "<< (-b+std::sqrt(d))/(2*a);
       else
           std::cout<< 2 <<" " << (-b+std::sqrt(d))/(2*a) << " "<< (-b-std::sqrt(d))/(2*a);
    }else if(d==0)
     std::cout<< 1 <<" " << (-b)/(2*a);
        else
            std::cout << 0;
    }else if(b)
        std::cout<< 1 <<" " << -c/b;
    else if(c)
        std::cout<< 0;
    else
        std::cout<< 3;
  return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,207
Завершенные тесты: 1
03.12.2015, 09:08     Решение квадратного уравнения #4
ture, форматируйте код аккуратнее.
Например, у Вас практически не видно, что есть блок проверки на равенство нулю переменной a.
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
#include <iostream>
#include <cmath>
int main() 
{
    double a,b,c;
    std::cout<<"Enter a b c :";
    std::cin >> a>> b>> c;
    std::cout << std::fixed << std::showpoint;
    std::cout.precision(6);
    if(a)
    {
        double d=b*b-4*a*c;
        double ba=-b/(2.0*a);
        if(d>0)
        {
            double sd=std::sqrt(d)/(2.0*a);
            std::cout<< "2 ";
            if (a>0)
                std::cout << ba-sd << " "<< ba+sd;
            else
                std::cout << ba+sd << " "<< ba-sd;
        }else if(d==0)
            std::cout<< "1 " << ba;
        else
            std::cout << "0";
    }else if(b)
        std::cout<< "1 " << -c/b;
    else if(c)
        std::cout<< "0";
    else
        std::cout<< "3";
    std::cout<<std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
03.12.2015, 09:08     Решение квадратного уравнения
Ответ Создать тему
Опции темы

Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru