BkmzCvjktd
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 3
|
||||||
#1 | ||||||
Почему не работает программа при некоторых входных данных - C++23.07.2012, 17:43. Просмотров 429. Ответов 8
Метки нет Все метки)
(
Задание найти первый и последний неотрицательные эллементы массива.
и вывести их индексы если значение size указать 20 то всё работает, а если к примеру 19, то выводит только массив, а индексы уже не выводит, программа просто останавливается и всё.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
23.07.2012, 17:43 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Почему не работает программа при некоторых входных данных (C++):
8
Почему при инициализации данных программа работает быстрей? - C++
Почему при умножении на 0, программа работает правильно? - C++ Почему работает программа при выходе за пределы массива? - C++
Почему программа выдает ошибку при первом запуске, а дальше работает нормально? Код C - C++ |
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
|
||||||
23.07.2012, 18:01 | #2 | |||||
Задачу можно решить вот так
1
|
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
|
||||||
23.07.2012, 18:04 | #3 | |||||
BkmzCvjktd,
Или это компилятор умный и приводит к const?
1
|
Catstail
Модератор
23401 / 11528 / 1879
Регистрация: 12.02.2012
Сообщений: 18,833
|
|
23.07.2012, 18:07 | #4 |
David Sylva - Вы нашли первые отрицательные элементы, а надо был - неотрицательные...
2
|
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
|
||||||
23.07.2012, 18:10 | #5 | |||||
Исправлено благодаря советам более внимательных людей
1
|
BkmzCvjktd
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 3
|
|
23.07.2012, 18:29 [ТС] | #6 |
Такое решение у меня было, но сейчас пытаюсь разобраться с указателями и хотел эту же задачу решить используя их.
Но она работает как то странно. Заметил такую закономерность, если массив чисел заканчивается положительным числом то всё работает как нужно, а если отрицательным то выдаётся только массив и работа программы останавливается.
0
|
Catstail
Модератор
23401 / 11528 / 1879
Регистрация: 12.02.2012
Сообщений: 18,833
|
||||||
23.07.2012, 18:30 | #7 | |||||
Кстати, для самого поиска достаточно одного цикла:
0
|
BkmzCvjktd
0 / 0 / 0
Регистрация: 23.07.2012
Сообщений: 3
|
|
23.07.2012, 18:38 [ТС] | #8 |
Я понимаю, но что не так именно в моей версии, почему программа не сабатывает при последнем отрицательном числе?
Если важно то использую компилятор geany в ubunu 12.04 Добавлено через 4 минуты Всё, спасибо, разобрался сам, спасибо всем откликнувшимся, особенно Catstail, обязательно изучу ваш вариант ![]()
0
|
Endiff
31 / 31 / 1
Регистрация: 19.05.2012
Сообщений: 67
|
||||||
23.07.2012, 18:39 | #9 | |||||
Была ошибочка в цикле с *max, ты сбавлял адрес у min. И еще проверочки не было на выход за пределы.
Насчет ошибки в цикле - из-за неё вся проблема. Представь что первое неотрицательное число - первое значение. А последнее неотрицательное - не последнее число. В цикле ты сбавлял адрес минимального, а оно уже выходило за пределы массива. И хрен знает, что оно там проверяло.
0
|
23.07.2012, 18:39 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
23.07.2012, 18:39 |
Привет! Вот еще темы с ответами:
9
Почему в некоторых случаях используется массив для хранения стека, а в некоторых нет? - C++ Почему при вводе элементов массива, программа прекращает работу или работает не так, как ожидается? - C++ При некоторых компиляциях программа медленно исполняется - C++ Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |