Лучшие в Сентябре 2017 г.
Связанных вопросов не найдено

DO WHILE в C++ исключение 1.#INF

0
#include "stdafx.h"
#define _USE_MATH_DEFINES
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL,"rus");
double x,y,dx,F1,F2,F3;
x=-2;
dx=0.5;

do
{
F1=exp(x)/0.5;

if ((x==(M_PI)/2)||(x==-M_PI/2))
{
cout<<"нет решения"<<endl;
}else
{

F2=1/tan(x);
F3=cos(x);
if(cos(x)==0)
{
cout<<"нет решения"<<endl;
}else
{
y=(F1+F2)/F3;
cout<<"x="<<x<<"y="<<y<<endl;
}

}
x=x+dx;
}while (x<=2);
return 0;
}

Как мне сделать так чтобы не выводило x=0y=1.#INF
21 апреля аноним,  в категории Компьютеры, Интернет
 
Ваш ответ
Отображаемое имя (по желанию):
Анти-спам проверка:

1 Ответ
0
21 апреля аноним, 
1) не выносить каждую скобку в отдельную строку -- пока проматывается несколько экранов забывается начало и тогда сложно и оценивать, и править
одно действие - одна строка

2)"if ((x==(M_PI)/2)||(x==-M_PI/2))"
а нафига смотреть на пи если надо смотреть на косинус и тангенс перед прочими вычислениями??

3)нафига
if(cos(x)==0)
если косинус уже вычислен? зачем тратить ресурс на повторку?

4) перед делением на F3 нет проверки на его ноль

ну и куча мелочей.
Надеюсь разберёшься
Copyright © 2016 Вопросы и ответы онлайн - sovety.info | Для связи: site@sovety.info
Мнение редакции может не совпадать с мнением авторов вопросов и ответов.
Индекс цитирования
...