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

Помогите найти ошибку в решении биквадратного уравнения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как обратиться к свойству класса http://www.cyberforum.ru/cpp-beginners/thread1233666.html
Нубский вопрос, вот код: #include "stdafx.h" #include <iostream> using namespace std; class HelloClass
C++ Выяснить, сколько бюллетеней осталось необработанными В стране Виртландии раз в пять лет проходят выборы президента. И каждый раз после завершения голосования появляется необходимость подсчитать результаты. Рассмотрим процесс обработки бюллетеней в Виртландии. Всего в Виртландии голосуют n человек, соответственно необходимо обработать n бюллетеней, которые пронумерованы от 1 до n. Обработка длится k дней. Каждый день члены избирательной комиссии... http://www.cyberforum.ru/cpp-beginners/thread1233631.html
Преобразование string в long double C++
Одним из недостатков C++ является отсутствие для бизнес-программ встроенного типа для денежных значений, такого, как $173 698 001,32. Такой денежный тип должен иметь возможность для хранения числа с фиксированной десятичной точкой точностью около 17 знаков, которого было бы достаточно для хранения национального долга в долларах и цен- тах. К счастью, встроенный тип C++ long double имеет...
C++ Нахождение среднего значения дробей
Напишите функцию main(), которая получает случайные дробные числа от пользователя, сохраняет их в массиве типа fraction, вычисляет среднее значение и выводит результат. т.е. пользователь вводит к примеру 1/2, 2/3, 3/4, 4/5 а в ответ получает среднее значение 419/720 программа работает неправильно, выводит ноли. где ошибка? #include "stdafx.h" #include <iostream> #include <cmath>...
C++ Получить последовательность число цифр которой равно знаменателю, а сумма этих цифр -числителю http://www.cyberforum.ru/cpp-beginners/thread1233576.html
Доброго всем времени суток!Пожалуйста помогите сформировать вектор. Дана правильная несократимая дробь нужно получить последовательность число цифр которой равно знаменателю,а сумма этих цифр -числителю.Напечатать в виде 1.1.2.1.2; Вот мой вариант. #include <iostream> #include <stdlib.h> #include <vector> #include <algorithm> #include <iterator> #include <iomanip>
C++ Массивы. Классы. Нахождение среднего значения дробей Напишите функцию main(), которая получает случайные дробные числа от пользователя, сохраняет их в массиве типа fraction, вычисляет среднее значение и выводит результат. т.е. пользователь вводит к примеру 1/2, 2/3, 3/4, 4/5 а в ответ получает среднее значение 419/720 программа работает неправильно, выводит ноли. где ошибка? #include "stdafx.h" #include <iostream> #include <cmath>... подробнее

Показать сообщение отдельно
Yarik199
2 / 2 / 0
Регистрация: 01.11.2013
Сообщений: 154
Завершенные тесты: 2

Помогите найти ошибку в решении биквадратного уравнения - C++

25.07.2014, 11:15. Просмотров 396. Ответов 4
Метки (Все метки)

Здравствуйте,написал код,проблема в том,если выполняется строка 31,то и всегда будет выполнятся строка под номером 39,как это исправить? писал по алгоритму,должно быть все правильно. Программа работает хорошо,только выводит на экран пару лишних иксов. Для примера можно взять 4(x^4)- 5(x^2)+1=0. Ответ равен 1, -1, 0.5, -0.5;
у меня выбивает следующие: x1=1; x2=-1; x3=0.5; x4=-0.5; x1=-1; x2=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
50
51
52
#include <iostream>
#include <math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
int main(int argc, char** argv) 
{
    cout<<"25-07-2014"<<endl;
    cout<<"Bi-kwadratowe rownanie:)"<<endl;
    double a=!0, b = 0, c = 0, d = 0, y1 = 0, y2 = 0, x1 = 0, x2 = 0, x3 = 0, x4 = 0;
    cout<<"a=";
    cin>>a;
    cout<<"b=";
    cin>>b;
    cout<<"c=";
    cin>>c;
    d=b*b-4*a*c;
    if(d<0)
    {
        cout<<"Dzialanie niewykonane"<<endl;
    }
    else
    {
     y1=(-b+sqrt(d))/(2*a); 
     y2=(-b-sqrt(d))/(2*a); 
    }
    if(y1<0 && y2<0)
    {
    cout<<"Dzialanie niewykonane"<<endl;    
    }
    else if(y1>=0 && y2>=0)
    {
    x1=sqrt(y1);
    x2=-x1;
    x3=sqrt(y2);
    x4=-x3;
    cout<<"x1="<<x1<<" "<<"x2="<<x2<<" "<<"x3="<<x3<<" "<<"x4="<<x4<<endl;
    }
    else if(y1>=0)
    {
        x1=sqrt(y1);
        x2=-x1;
    }
        else
    {
        x1=sqrt(y2);
        x2=-x1;
    }
    cout<<"x1="<<x1<<" "<<"x2="<<x2<<endl;
    system("Pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru