Во-первых, это домашнее задание, и я очень новичок в программировании на C. То, что я пытаюсь выполнить, заключается в том, что пользователь ставит целое число , а затем каждая отдельная цифра этого целого числа печатается на новой линии, как показано ниже:Попытка изменить порядок цифр в целых числах, показаны дополнительные цифры
Enter integer: 1234
The digits are:
1
2
3
4
Моя проблема в том, что все целое вы вход, по какой-то причине 7 и 4 добавляются к концу. Ниже мой код и пример проблемы:
#include <stdio.h>
#define Success 0
int main()
{ int integer;
int reverse;
int digit;
printf("Enter Integer: ");
scanf("%d", &integer);
/* Reverse the numbers in the integer */
while (integer != 0) {
digit = integer%10;
reverse = (reverse * 10) + digit;
integer = integer/10;
}
/* Print the numbers of the reverse integer, in reverse order */
while (reverse != 0) {
digit = reverse%10;
printf("%d\n", digit);
reverse = reverse/10;
}
return Success;
}
Пример задачи:
Enter Integer: 12345
1
2
3
4
5
7
4
Кто-нибудь есть какие-либо идеи относительно того, что может вызвать этот результат? При печати reverse
Я сузил его до проблемы с первым циклом while.
Какая ошибка новобранец, спасибо! –
Если вы скомпилируете '-Wall', предупреждающее сообщение предложит это как проблему. Я рекомендую компиляцию со всеми предупреждениями, так как это помогает поймать эти ошибки. –
Я был, и это не предупредило меня об этом, иначе я, вероятно, понял бы это. Поскольку это было, я думаю, что я бы застрял на этом некоторое время, мне даже не приходило в голову, что там будет какой-то случайный мусор. –