OriginalGriff
Это довольно очевидно, но ..... если я расскажу тебе, ты мало что узнаешь.
Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали электронное письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.
Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.
Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а затем удвоить его и напечатать ответ, то если бы ввод / вывод был таким:
Input Expected output Actual output
1 2 1
2 4 4
3 6 9
4 8 16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
int Double(int value)
{
return value * value;
}
Как только у вас появится идея, что может пойти не так, начните использовать отладчик teh, чтобы выяснить, почему. Поставить точку останова на строке:
while( (c=getchar())!=EOF)
и запустите свое приложение. Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она на самом деле делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!
Да, я, вероятно, мог бы сказать вам, в чем "проблема" - но это не трудно сделать самому, и вы узнаете что-то действительно стоящее в то же время! Вместо этого я дам вам подсказку: посмотрите, что произойдет, когда вы обработаете последнюю цифру...
Shubham_Kumar
Привет, спасибо за решение. Одно последующее действие мне нужно, кстати, я получил свою ошибку, значение ключа ввода также было добавлено. Но я хочу спросить, так как каждый раз, когда нажимается клавиша, переменная увеличивается, и она печатается. Сэр я думаю что нет никакого способа напечатать общую сумму как если бы я ввел aaa
выход -> 123
Таким образом , нет никакого способа напечатать только 3, единственный вариант-выйти из цикла и распечатать переменную, я прав?
Более того, Извините, что беспокою вас, ребята, из-за такой маленькой проблемы, с этого момента я постараюсь сначала оценить свой код.