Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 19:06   #1
Ajan
Новичок
Джуниор
 
Регистрация: 10.06.2012
Сообщений: 2
Вопрос Где ошибка? (С++)

Задача простая, но не могу разобраться с оператором else if.
Обычное квадратное уравнение.

Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <cstdlib>

int _tmain(int argc, _TCHAR* argv[])
{
	double x1,x2,d,a,b,c;
std::cout<<"Enter a\n";
std::cin>>a;
std::cout<<"Enter b\n";
std::cin>>b;
std::cout<<"Enter c\n";
std::cin>>c;
d=b*b-4*a*c;
std::cout<<"d="<<d<<"\n";

    system ("Pause");
	
if (d<0) {std::cout <<"No results\n";}

else {
if (d=0)
	{x1=-b/(2*a);
    std::cout <<"x="<<x1<<"\n";}

else {
if (d>0)
	{x1=(-b+pow(d,(double)1/2))/2*a;
	x2=(-b-pow(d,(double)1/2))/2*a;
	std::cout <<"x1="<<x1<<"\n";
	std::cout <<"x2="<<x2<<"\n";}
}
}
system ("Pause");
	return 0;
}

Последний раз редактировалось Ajan; 10.06.2012 в 19:22. Причина: Существовало нарушение правил раздела.
Ajan вне форума Ответить с цитированием
Старый 10.06.2012, 21:02   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

в чем конкретно проблема?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.06.2012, 21:06   #3
Ajan
Новичок
Джуниор
 
Регистрация: 10.06.2012
Сообщений: 2
По умолчанию

Цитата:
в чем конкретно проблема?
Программа не обрабатывает операторы else if
Ajan вне форума Ответить с цитированием
Старый 10.06.2012, 22:01   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
if (d<0)
    {
        std::cout <<"No results\n";
    }
    else
    {
        if (d==0)
        {
            x1=-b/(2*a);
            std::cout <<"x="<<x1<<"\n";
        }
        else
        {
            x1=(-b+pow(d,(double)1/2))/2*a;
            x2=(-b-pow(d,(double)1/2))/2*a;
            std::cout <<"x1="<<x1<<"\n";
            std::cout <<"x2="<<x2<<"\n";
        }
    }
Сравнение - это знак "==", а не "=". Но вещественные числа лучше сравнивать fabs(d)<eps, где eps=0.00001, например.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Где ошибка? VoVchik11 Microsoft Office Word 3 25.03.2011 17:21
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
где ошибка? О.о ConChita Общие вопросы C/C++ 2 23.11.2009 10:45
Где ошибка? stas77 Microsoft Office Excel 11 02.11.2009 18:26