|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2015, 11:12 | #1 |
Пользователь
Регистрация: 23.05.2015
Сообщений: 15
|
Ошибка в коде (С)
Помогите найти ошибку, суть задачи заключается в нахождении значения функции, заданной с помощью ряда Тейлора(условие прикрепил). Правильно выводит только при x=1 остальные значения не правильные(прикрепил скрин консоли) Соответственно при х=2 должно выводиться s=0,909; x=3 s=0,141 x=4 s=-0,756 x=5 s=-0,958, но выводиться не правильно, ошибка где-то с S, но не могу ее найти всяко разно пытался - не получается. Буду рад услышать ваши мысли.
Код:
|
27.05.2015, 11:22 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Могу порекомендовать свое решение: http://www.programmersforum.ru/showp...1&postcount=35
Только прирост делай на двойку, а не на единицу. А вот в твоем коде я перед циклом факториала f бы обнулял.
I'm learning to live...
|
27.05.2015, 11:49 | #3 |
Пользователь
Регистрация: 23.05.2015
Сообщений: 15
|
Благодарю за помощь, обнулив факториал у меня правильно просчитались первые 3 значения при x=1,x=2,x=3 а дальше почему-то не правильно
Сейчас у меня выводит только 4 значения при x=1 x=2 x=3 x=4 хотя я пишу от 1 до 10 (но эти значения верные не учитывая знак) Не могу понять где может быть ошибка Последний раз редактировалось Stilet; 27.05.2015 в 12:01. |
27.05.2015, 12:00 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да наверное потому что факториал больше 9 уже в процессор не влезает )
Это же огогенное число получается. Не удивительно, я бы тоже подавился и слег с несварением )))
I'm learning to live...
|
27.05.2015, 12:13 | #5 | |
Пользователь
Регистрация: 23.05.2015
Сообщений: 15
|
Цитата:
При вводе разных значений - знаки меняются Последний раз редактировалось axel__; 27.05.2015 в 12:25. |
|
27.05.2015, 12:43 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Со знаками я проблем не вижу. Хотя я бы писал не b=b*(-1); а b=-b;
I'm learning to live...
|
27.05.2015, 13:01 | #7 |
Пользователь
Регистрация: 23.05.2015
Сообщений: 15
|
А почему тогда со скриншотов с этого поста http://programmersforum.ru/showpost....07&postcount=5
знак при х=2 разный(при вводе разного шага и точности) ? При значениях x=1 x=2 x=3 x=4 x=5 должно получаться s=0,841 s=0,909 s=0,141 s=-0,756 s=-0,958 соответственно. В первом скриншоте значение при x=4 не соот-ет, на 2 скриншоте при x=2 и х=4 |
27.05.2015, 13:11 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Отладку нужно делать. Возможно у тебя переполнение идет из-за факториала.
Проведи трассировку и посмотри как операторы себя ведут. Я думаю что long long все равно не будет хватать.
I'm learning to live...
|
27.05.2015, 13:59 | #9 |
Пользователь
Регистрация: 23.05.2015
Сообщений: 15
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка в коде | СергейАС | Помощь студентам | 1 | 23.10.2012 14:59 |
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? | ArchiCurtis | Помощь студентам | 2 | 07.04.2012 14:16 |
Ошибка в коде | X_ALONE_X | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.08.2011 18:40 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
Ошибка в коде | Cronos20 | PHP | 3 | 09.07.2010 23:31 |