|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.03.2013, 02:13 | #1 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Ошибка "Access violation"
Доброго времени суток, уважаемые). Начал изучать "С++. Освой на примерах.". Начал выполнять упражнения и столкнулся с ошибкой, которая в заголовке. Вот код:
PHP код:
Спасибо, что заглянули)). И ОГРОМНОЕ СПАСИБО за ответы. UPD Протрассировал прогу, ошибка вылетает после getch();
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 19.03.2013 в 02:46. Причина: Забыл упомянуть компилятор и ось. Прокомментировал код. |
19.03.2013, 06:56 | #2 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 18
|
/*заполнение массива факториалами*/
for (int i=1;i<=n;i++) { Array[i]=1; for (int j=1;j<=i;j++) { Array[i]=Array[i]*j; } cout<<i<<" element ="<<Array[i]<<"\n"; } нумерация элементов начинается с 0 до n-1 |
19.03.2013, 10:49 | #3 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Благодарю! Зависания по ночам с книгами меня когда-нибудь погубит). Как всегда туплю.
Если помог, проси поставить минус. Будь оригинален!
|
19.03.2013, 11:39 | #4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
На самом деле, там не надо перемножать. Уже при N=8 результат не влезет в int, при N=10 не влезет и в __int64. Слишком быстро растущая функция для решения "в лоб".
|
19.03.2013, 16:14 | #5 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Это лишь начало книги, главное было научиться использовать циклы, условные операторы, и выборку. 23! или 24! не влезет в int64. Можно использовать "long double", но и тут будет трабл, ибо в мантиссе значащих чисел лишь 20. Хоть это и просто упражнение, но интересно, как выкрутиться из этой ситуации?
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 19.03.2013 в 16:26. |
19.03.2013, 16:21 | #6 | |
Главное желание.
Форумчанин
Регистрация: 28.11.2011
Сообщений: 122
|
http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx
Цитата:
Я могу, Я хочу, Я буду!
|
|
19.03.2013, 17:09 | #7 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
ArmanPrestige, и что Вы хотите сказать? Теперь посчитайте 1!*2!*3!*...*10!. Элементарная оценка сверху скажет Вам, что это больше 2^78. Более того, можно оценить и результат при N=9, он тоже не влезает.
Цитата:
Возможно, можно ещё подумать и доказать, скажем, что при любом N>6 решения не существует (если что, я понятия не имею, существуют ли они). Последний раз редактировалось Abstraction; 19.03.2013 в 17:11. |
|
19.03.2013, 17:19 | #8 |
Главное желание.
Форумчанин
Регистрация: 28.11.2011
Сообщений: 122
|
Извините, проглядел. Не заметил что произведение факториалов. Мне почему-то показалась сумма факториалов.
Я могу, Я хочу, Я буду!
|
20.03.2013, 13:41 | #9 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
for Abstraction
Поэксперементировал, значится. Ввел i<9223372036854775807 в условии цикла. Равенство выполняется только при N=2, во всех остальных случаях выводит "Net takix".
Если помог, проси поставить минус. Будь оригинален!
|
20.03.2013, 14:28 | #10 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Access violation at address in module "Project1.exe"... | NewLamer&Programer | Помощь студентам | 12 | 23.11.2012 14:54 |
Ошибка: "Access violation at address 004035BE in module Project1" | haker270 | Общие вопросы Delphi | 4 | 25.04.2012 22:33 |
Ошибка "Access violation at address 004043A8 in module 'Project1.exe'. Read of address 00FF5A53." | ms.Karishka | Общие вопросы Delphi | 6 | 14.04.2011 22:18 |
Ошибка: " class EAccessViolatiossViolation with n with message 'Access violation at address 0052D1D5..." | lutdan | Помощь студентам | 4 | 02.04.2011 04:29 |
Ошибка "Acces violation" в чем может быть причина | TRIZER | Общие вопросы Delphi | 2 | 02.05.2010 12:10 |