OriginalGriff
Начните с того, что перестаньте паниковать - это никогда не поможет. Успокойся, расслабься и включи свой мозг! :смеяться:
Первое, что нужно сделать, это научиться использовать отладчик: я не могу дать вам явных инструкций, потому что не знаю, какую систему вы используете, и все они работают по-разному, но все они имеют одни и те же основные функции. Погуглите Название вашей системы разработки (Visual Studio, Turbo C, что угодно) и "отладчик", и вы довольно легко найдете инструкции.
Начните с трех вещей, которые отладчик может сделать для вас:
1) точка останова: когда приложение работает в отладчике и достигает строки с точкой останова, оно останавливается и передает Управление вам. Поставьте точку останова в вашем коде на этой строке:
l=strlen(arr);
и с тобой все будет в порядке.
2) переменные: как только отладчик передал вам Управление, вы можете использовать его для просмотра переменных и их содержимого-даже во время выполнения кода!
3) Шаг: вы можете сказать отладчику "выполнить следующую строку кода", и он это сделает.
Подумайте о процессе разработки как о написании письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.
Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но к более ранним стадиям вы придете позже): тестирование и отладка.
Начните с рассмотрения того, что он делает и чем это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:
Input Expected output Actual output
1 2 1
2 4 4
3 6 9
4 8 16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его-он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он где-то здесь:
private int Double(int value)
{
return value * value;
}
Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему.
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она на самом деле делала, когда вы использовали кнопку "шаг вперед" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он совершенствуется только при использовании!
Да, я, наверное, мог бы сказать вам, в чем "проблема" - но сделать это самому несложно, и при этом вы узнаете что-то действительно стоящее!