0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 4
|
||||||
1 | ||||||
Программа "валится" на методе сортировки файла при записи09.01.2012, 22:47. Показов 1157. Ответов 7
Метки нет (Все метки)
Доброго времени суток!
Есть вот такая вот программка. Валится на методе сортировки файла при записи в el58.dat. Не найду где. По условиям задания надо: 1)страна в 1958 выработала больше всех энергии; 2)страны которые в 1955 выработали больше 70 млрд; 3) отсортировать по алфавиту страны которые в 1958 не превысили производство 100 млрд. Вот на третьем и валится. Можно посмотреть исправленный вариант?
Иными словами, оно должно выглядеть примерно так: [404] а выглядит вот так(падает как раз на моменте сортировки): [404] А у самого мозгов не хватает исправить ошибку.
0
|
09.01.2012, 22:47 | |
Ответы с готовыми решениями:
7
Программа валится при освобождении памяти под динамический массив почему программа валится? Программа валится с кодом -1073740940 Ошибка в методе при сохранении файла Программа валится из-за неправильного кода, в чем ошибка? |
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
09.01.2012, 23:59 | 2 |
из того что быстро увидел:
1) верно писать r+ либо w+, если w+ то файл-поинтер уже на конце. 2) вы в бинарном виде работаете? почему тогда режимы текстовые? надо писать rb, wb, rb+... 3) на начале файла стоишь. по остальному: я думаю метод сортировки напрямую в файле не самый лучший вариант. более того, я 1ый раз вижу чтобы так делали. хы-хы. читай в массив структур их сортируй и пиши обратно, проще будет.
1
|
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 4
|
|
10.01.2012, 00:02 [ТС] | 3 |
Уже поисправлял в коде.
Не можете исправить что да как? Я же говорю, мозгов исправить не хватает. Я теорию хоть немного понимаю, а в практике вообще дуб. Да и писал не совсем я.
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
10.01.2012, 00:23 | 4 | |||||
Сообщение было отмечено Памирыч как решение
Решение
1
|
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 4
|
|
10.01.2012, 19:19 [ТС] | 5 |
Самое интересное, что этап сортировки как бы проходит, и доходит до дела вывода стран в которых электричество меньше 100, но сортировка всё равно растянутая на пол программы.
Добавлено через 1 минуту Упс, вроде работает как надо... сейчас кое-что попробую доисправлять и отпишусь. Добавлено через 10 минут Всё, огромное спасибо! Работает как и надо. Добавлено через 18 часов 37 минут А можете подсказать про код в программе, который отвечает за сортировку? Сейчас сортирует по алфавиту. А если в обратном алфавитном, например? Мне сказали что отвечает strcmp и какое значение(>0, =0, <0) он вернёт - так и будет сортироваться. Тут я такого не нашёл. Не подскажите, пожалуйста?
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
10.01.2012, 20:00 | 6 | |||||
сортирует функция qsort.
http://www.cplusplus.com/refer... lib/qsort/
1
|
0 / 0 / 0
Регистрация: 09.01.2012
Сообщений: 4
|
|
10.01.2012, 20:04 [ТС] | 7 |
Т.е. можно смело сказать что тут отыгрывает роль strcmp - cmp.
Спасибо большое.
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
10.01.2012, 20:10 | 8 |
test_file, Наоборот.
cmp - функция сравнения указателей (в данном случае на структуру), т.к в условии было дано сравнивать по имени (char*), то я использовал strcmp. В данном (и только данном) случае роль функции сравнения выполняет strcmp.
1
|
10.01.2012, 20:10 | |
10.01.2012, 20:10 | |
Помогаю со студенческими работами здесь
8
Задача про вычисление арифметических выражений. Необходимо найти пример на котором валится программа Программа сортировки (по возрастанию) файла, содержащего целые числа На каком методе сортировки стоит остановиться ? Валится приложение при объявлении связи При удалении пользователя валится сервер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |