![]() |
|
Модераторы: bsa |
![]()
|
|
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Здравствуйте уважаемые программисты, вот такой вопрос меня ОЧЕНЬ беспокоит. Я пишу программу в Visual Studio 2008 Express (консольное приложение). Операционная система Windows Vista. Условие задачи такое: В массиве 40 чисел, найти максимальное из них. Задача очень легкая. Я вот наткнулся на такую проблему. В режиме Debug программы она работает очень хорошо и выдает правильные результаты. Но после выполнения Release программа выдает непонятный результат (число, которое даже не вводилось, причем длинное). Подскажите, может я неправильно "реализую" или в моем коде закралась ошибка, что вполне вероятно...
Заранее Спасибо! К стати размеры файла Debug и Release отличаются. К примеру программа в режиме Debug 4Кб, а вот Release 10Кб. Почему такая разница в размерах файлов подскажите пожалуйста? Ниже привожу код написанной мной программы:
Это сообщение отредактировал(а) OuterHeaven - 5.1.2009, 03:36 |
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Вот простой пример:
Я изменил исходник таким образом чтобы вводилось 4 числа, а не 40 (для удобства). Входные данные: 4, 5, 6, 3 Выходные данные: 9842740 Что за бред? Это уж точно не тот результат, который мне нужен. Вот измененный исходник, там сменил 40 на 4 и все. Остальное не трогал.
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
вот тут
ты max присваиваешь значение за концом массива. |
|||
|
||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
А как надо? Почему отладчик то работает и показывает верные результаты? А при создании релиза программа выдает неверный результат? Это мне не понятно?
|
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Надо int max=0; в строке 20
|
||||||
|
|||||||
| OuterHeaven |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Сейчас гляну...
Добавлено через 11 минут и 11 секунд Огромное спасибо за вашу помощь. Все работает! Но я так и не понял почему надо int max=0, а не int max=i. Я просто совсем запутался. В учебнике Т.А. Павловской сказано, что этой переменной мы определили максимальный элемент массива (int max=i). Получается, что мы просто ему присвоили нулевое значение? И далее по условию начинаем сравнивать с введенными нами данными в массиве. Я верно все понял? Тему считаем закрытой. Это сообщение отредактировал(а) OuterHeaven - 6.1.2009, 09:15 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |