Рейтинг:
2
OriginalGriff
Если вы "знаете С++", то вы знаете С - это подмножество с++.
Мы понятия не имеем, что делает "тест 8", и мы также понятия не имеем, каким должен быть результат и почему.
Внимательно прочитайте свой домашний вопрос и попробуйте запустить свой код в отладчике, используя свои собственные тестовые данные, и посмотреть, что именно происходит.
Мы не можем сделать это для вас.
Member 13527256
Если вы "знаете С++", то вы знаете С - это подмножество с++.
Теперь я имею в виду, что они используют malloc(), calloc(), printf(), scanf() и т. д., которых я не знаю.
Я просто хотел, чтобы другие люди просмотрели мой код - для них было бы легче найти ошибку.
OriginalGriff
Вот в чем проблема:
1) это не легче для нас, потому что мы понятия не имеем, что такое задача, или что на самом деле означает "сокрушение на тесте 8".
2) отладка вашего приложения-это то, что вы должны делать как часть своей домашней работы: если вы не узнаете о таком тривиальном коде, как этот, то как вы ожидаете справиться с более сложным кодом позже?
3) Если ваш курс связан с C, вы должны использовать C для его решения. Почему вы не знаете, как использовать malloc, printf и т. д.? Я уверена, что твой учитель объяснил их всему классу...
Member 13527256
Ну, я сказал, что протестировал свою программу на множестве различных значений, и она сработала. Я понятия не имею, на каком значении это не работает (давит - была ошибка), а также я понятия не имею, почему это на самом деле не работает.
Раньше я работал в другой группе, где они начали использовать cout/cin, new/delete, потому что их наставник считает malloc/calloc и printf/scanf слишком старыми и неудобными.
Собственно, в предыдущей группе (около года назад) Раньше я работал с классами и даже выиграл региональный конкурс программистов. Но потом мне пришлось переехать в другой город, и мой новый репетитор не так хорош, как предыдущий (более того, моя нынешняя группа только начала учиться программировать, так что ни они, ни репетитор меня не любят). Сейчас у меня обычно нет проблем с кодированием (на прошлой неделе у нас была еще более сложная задача, которую я сделал очень быстро), но эту задачу я действительно не понимаю. Я думаю, что этот код должен быть правильным, и я не могу понять, почему он не работает.
OriginalGriff
Если курс С, то чтобы получить оценку в конце его, вам придется использовать С, а не с++. А это означает изучение printf, malloc и забвение классов. Или перейти на курс C++...
Если вы имеете в виду, что он терпит неудачу в одном случае использования, то вам нужно будет протестировать, используя гораздо более широкий диапазон значений, чтобы выяснить, почему он терпит неудачу - и без представления о том, какие данные его вызывают, мы не можем обязательно дублировать проблему для вас или получить какое-либо представление о том, почему он терпит неудачу в этом случае. Вы пробовали глупые ценности? Нисходящий, а не восходящий? Точное совпадение? Один наверху, другой внизу? В основном ищите крайние случаи и тестируйте их.
Рейтинг:
1
Patrice T
Ваша проблема в том, чтобы знать, где остановиться.
Как только вы знаете уровень, которого не можете достичь, вы можете остановиться, у вас есть ответ.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.
Отладчик - Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.