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

Ребят, где ошибка? - C++

Восстановить пароль Регистрация
 
Spirit2222
0 / 0 / 1
Регистрация: 02.11.2013
Сообщений: 32
02.11.2013, 21:17     Ребят, где ошибка? #1
Я только учусь, многого не знаю. Нужна помощь, подскажите, где ошибки?
Код
#include <iostream>
#include <Windows.h>
#include <cstdlib>
#include <string>
#include <cmath>
using namespace std;
 
int main()
{
    double a, b, c, D, D1, x1, x2; //обьявление переменных
    cout << "Vvedite a: ";
    cin >> a;
    cout << "Vvedite b: ";
    cin >> b;
    cout << "Vvedite c: ";
    cin >> c;
	cout << "pow(b, 2)-4*a*c = " << D << endl; //вычисление дискр.
    if ( D > 0) //если дискр. больше 0
    {
     cout << "sqrt(D)= " << D1 <<endl; //вычисления корня из дискр.
     cout << "(-b + D1)/2a= " << x1 << endl; //вычисление х1
     cout << "(-b - D1)/2a= " << x2 << endl; //вычисление х2
    } else //иначе 
         {
          if ( D = 0) //если дискр. равен 0
	   {
	    cout << "-(b/2a)= " << x1 << endl;
	    cout << "-(b/2a)= " << x2 << endl;
           } else
		{
		 if ( D < 0) //если дискр. меньше 0
		  {
		   cout << "Korney net";
		  }
		}
         }  
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
02.11.2013, 21:21     Ребят, где ошибка? #2
Spirit2222,
C++
1
if ( D = 0)
Здесь переменной D присваивается 0. А вам, для проверки условия, нужна операция логического сравнения, т.е
C++
1
if ( D == 0)
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
02.11.2013, 21:23     Ребят, где ошибка? #3
Цитата Сообщение от Spirit2222 Посмотреть сообщение
Я только учусь, многого не знаю. Нужна помощь, подскажите, где ошибки?
Код
#include <iostream>
#include <Windows.h>
#include <cstdlib>
#include <string>
#include <cmath>
using namespace std;
 
int main()
{
    double a, b, c, D, D1, x1, x2; //обьявление переменных
    cout << "Vvedite a: ";
    cin >> a;
    cout << "Vvedite b: ";
    cin >> b;
    cout << "Vvedite c: ";
    cin >> c;
	cout << "pow(b, 2)-4*a*c = " << D << endl; //вычисление дискр.
    if ( D > 0) //если дискр. больше 0
    {
     cout << "sqrt(D)= " << D1 <<endl; //вычисления корня из дискр.
     cout << "(-b + D1)/2a= " << x1 << endl; //вычисление х1
     cout << "(-b - D1)/2a= " << x2 << endl; //вычисление х2
    } else //иначе 
         {
          if ( D = 0) //если дискр. равен 0
	   {
	    cout << "-(b/2a)= " << x1 << endl;
	    cout << "-(b/2a)= " << x2 << endl;
           } else
		{
		 if ( D < 0) //если дискр. меньше 0
		  {
		   cout << "Korney net";
		  }
		}
         }  
    system("pause");
    return 0;
}
Я только одно не пойму,вы в потоке вывода пытаетесь,переменным D,D1 присвоить значения?
Spirit2222
0 / 0 / 1
Регистрация: 02.11.2013
Сообщений: 32
02.11.2013, 21:26  [ТС]     Ребят, где ошибка? #4
В каком месте им нужно присваивать значения?
И когда их нужно объявлять?
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 249
02.11.2013, 21:28     Ребят, где ошибка? #5
За спасибо

Эта строка не вычисляет D
C++
1
cout << "pow(b, 2)-4*a*c = " << D << endl; //вычисление дискр.
Перед ней надо
C++
1
D=pow(b, 2)-4.*a*c
В общем дальше подобная история продолжается, т.е. вывод , того что еще не подсчитано, ну там, D1, x1, x2

Строку
if ( D = 0) //если дискр. равен 0
замени
if ( D == 0) //если дискр. равен 0

Замени
cout << "-(b/2a)= " << x1 << endl;
cout << "-(b/2a)= " << x2 << endl;
Одной строкой, там ведь один корень, тока надо его рассчитать вначале.
Yandex
Объявления
02.11.2013, 21:28     Ребят, где ошибка?
Ответ Создать тему
Опции темы

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