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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
#1

найти ошибку в коде - C++

04.11.2013, 08:58. Просмотров 338. Ответов 11
Метки нет (Все метки)

На вход подаем 4.039
На выходе нужно получить: 15.2525
Выводит неверное значение.

Функция ниже в картиночке.
Вот код:
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
 
int main ()
{
double q,e,w,x,g,z,b,c,d;
cin>>x;
if((sin(x)!=0)&&(x>0)&&((log(4*(x))>0)))
{
e=2.7;
q=pow(x,2);
w=pow(e,q);
g=w/x;
b=log(4*x);
c=sin(x);
d=pow(b/c,1/3);
z=g+d;
printf("z=%f",z);
}
else
printf("\n No impossible");
system("pause");
return 0;
}
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 08:58     найти ошибку в коде
Посмотрите здесь:

Найти ошибку в коде - C++
Доброго времени суток, программисты. У меня возникла проблема, в которой я не могу разобраться, а именно: #include &quot;stdafx.h&quot; #include...

Найти ошибку в коде - C++
помогите написать программу. есть код, но в нем ошибка, сама не разберусь какая а)a=(j-5.5)(i-3.2)(i-7.4) б)В качестве компонент...

Найти ошибку в коде - C++
Не вижу ошибку, кофе видимо плох) #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main () { float pi=3.14151926; int...

Найти ошибку в коде - C++
Здравствуйте!!! помогите пожалуйста с кодом...мне нужен C++ вопрос таков...в чем я ошибся, при написании кода? )))

Найти ошибку в коде - C++
Скажите, пожалуйста, в чем у меня ошибка? Вот код #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;locale&gt; #include &lt;conio.h&gt; ...

Найти ошибку в коде - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; using namespace std; void main (void)...

Найти ошибку в коде - C++
Всем привет! Есть программа, но она некорректно работает, помогите найти ошибку. При вписывании, например: в первую строчку:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,171
04.11.2013, 09:00     найти ошибку в коде #2
1/3 = 0
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
04.11.2013, 09:01  [ТС]     найти ошибку в коде #3
Цитата Сообщение от Байт Посмотреть сообщение
1/3 = 0
как тогда подать?
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,171
04.11.2013, 09:02     найти ошибку в коде #4
Цитата Сообщение от Zig_Stas Посмотреть сообщение
как тогда подать?
1.0/3
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
04.11.2013, 09:09  [ТС]     найти ошибку в коде #5
Цитата Сообщение от Байт Посмотреть сообщение
1.0/3
Почему, когда возводит h=-3.5592253293994096 в степень а=0.33333333333333331,
выдает: d=-1.#IND000000000000?
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,171
04.11.2013, 09:22     найти ошибку в коде #6
Цитата Сообщение от Zig_Stas Посмотреть сообщение
Почему, когда возводит h=-3.5592253293994096 в степень а=0.33333333333333331,
функция pow - дама капризная. Она любит, чтоб 1-й аргумент был > 0. Так как ты твердо знаешь, что тебе нужен кубический корень (а он и из отрицательных чисел извлекается), попробуй ее обмануть.
C
1
2
if (h<0) d = -pow((-h), a);
else      d = pow(h,a);
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
04.11.2013, 09:39  [ТС]     найти ошибку в коде #7
Цитата Сообщение от Байт Посмотреть сообщение
функция pow - дама капризная. Она любит, чтоб 1-й аргумент был > 0. Так как ты твердо знаешь, что тебе нужен кубический корень (а он и из отрицательных чисел извлекается), попробуй ее обмануть.
C
1
2
if (h<0) d = -pow((-h), a);
else      d = pow(h,a);
Стало быть, это очень капризная дама.
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,171
04.11.2013, 10:54     найти ошибку в коде #8
Цитата Сообщение от Zig_Stas Посмотреть сообщение
это очень капризная дама.
Ну, вообще-то ее понять можно. В математике показательная функция ax определена только для a>0. Т.е. она еще капризнее. Некоторые реализации функции pow идут на уступки - позволяют возводить в целую степень. Но когда степень равна 0.33333333331, эта дама ну никак не может понять, что имеется в виду 1/3. Так что обижаться на нее не следует
gray_fox
What a waste!
1447 / 1176 / 61
Регистрация: 21.04.2012
Сообщений: 2,463
Завершенные тесты: 3
04.11.2013, 11:28     найти ошибку в коде #9
Есть cbrt - там нет проблем с отрицательным аргументом.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,930
Завершенные тесты: 1
04.11.2013, 11:30     найти ошибку в коде #10
Цитата Сообщение от gray_fox Посмотреть сообщение
Есть cbrt
Точнее говоря, появился в C++11
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,171
04.11.2013, 11:39     найти ошибку в коде #11
Функции cbrt() , cbrtf() и cbrtl() добавлены в версии С99.
...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 13:43     найти ошибку в коде
Еще ссылки по теме:

Найти ошибку в коде - C++
надо ввести равные стороны 3-ка #include &lt;iostream&gt; using namespace std; int main() { float side1 , side2 , side3; ...

Найти ошибку в коде - C++
Доброго времени суток. Не могу найти ошибку в коде. Задание проще простого, вычеслить функцию. Буду благодарен за любую помощь ...

Найти ошибку в коде - C++
Помогите пожалуйста найти ошибку в коде: #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int main() ...

Найти ошибку в коде - C++
Код крашится, кто знает в чем дело? Может протестировать чем - то?

Найти ошибку в коде - C++
if (PTS&gt;=0 &amp;&amp; PTS&lt;999) title2 = &quot;D-&quot;; if (PTS&lt;=0) title2 = &quot;Noob&quot;; if (PTS&gt;=1000 &amp;&amp; PTS&lt;1999) title2 = &quot;D&quot;; if (PTS&gt;=2000 &amp;&amp;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.11.2013, 13:43     найти ошибку в коде #12
Байт, стандарты C99 и C++11 описывают разные языки. Первый C, второй C++.
Yandex
Объявления
04.11.2013, 13:43     найти ошибку в коде
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru