Рейтинг:
22
OriginalGriff
Не гадайте, каким должен быть код, подумайте об этом и разработайте его!
Во-первых, вам нужно прочитать номер.
Затем вам нужно подсчитать количество цифр в этом числе - поэтому вам нужен цикл, и вам нужен счетчик, который увеличивается на единицу каждый раз, когда вы обходите цикл. Затем вам нужно вывести значение счетчика после цикла.
Кое-что из этого у тебя есть, почти. Объявлять x
и Первый БИТ сработает:
int x = 0;
cout << "Enter number to get the length of: ";
cin >> x;
Теперь вы определили длину, но я бы поставил ее на единицу, а не на ноль:
int xLen = 1;
Почему один? Поскольку " 0 " - это цифра, поэтому, если пользователь вводит ноль, вы должны сказать, что его номер состоит из одной цифры.
Тогда я бы использовал
while
петля вместо а
for
:
while (x != 0)
{
...
}
Почему
while
- Просто потому, что так легче читать!
И внутри цикла я бы изменил значение
x
и считайте каждую цифру:
x = x / 10;
xLen++;
Затем после цикла распечатайте длину, которую вы разработали:
cout << endl << "The length is:" << xlen << endl;
Deepak Kumar Choudhary
Во-первых, большое вам спасибо за ответ. У меня есть некоторые сомнения. Прежде всего, почему вы инициализировали x в 0. Теперь я пытался определить цифры в один раз, десятки или сотые и так далее, поэтому я подумал, что могу использовать количество цифр на входе. Есть ли другой способ? Так получилось, что я новичок начального уровня.
OriginalGriff
Чтобы придать ему значение, это не обязательно-код будет работать без него, - но это "хорошая практика", чтобы убедиться, что у вас есть разумные значения во всех переменных.
Вам не нужно "идентифицировать" цифры, просто подсчитайте, сколько их (чтобы "идентифицировать" их, вам нужно было бы отделить их, что достаточно легко сделать, но вас об этом не просили)
Но вам нужно вычислить количество цифр, и это то, что делает цикл.
Предположим, вы входите в цикл с x, удерживающим 123. Поскольку это не ноль, он входит в цикл while, который удаляет цифру и увеличивает количество. Затем он снова вращается.
Но вы правы, один был ошибкой - и так было использование цикла while.
Так и должно было быть:
int xLen = 0;
делать
{
...
} while (x != 0);
Я виню в этом недостаток кофеина ... :смеяться:
Deepak Kumar Choudhary
Да. Я намерен найти числа в десятках, сотых и разовых местах. Как мне это закодировать? Это был мой второй вопрос. Я попытался использовать%10, чтобы найти место once, то есть если 22, и я хочу напечатать место once, я бы просто сделал%10 и a/10, чтобы вывести место once и tens, которые я 2 и 2 соответственно. Но я застрял в поиске программы, которая будет работать для любого большого числа, такого как 45645, какая логика должна быть использована там, это мой вопрос.
OriginalGriff
Это довольно очевидно, если вы подумаете об этом на секунду.
x % 10 извлекает самую низкую цифру.
x / 10 удаляет самую низкую цифру.
Итак, если вы используете их в цикле, что происходит?
Кстати: вы не получите 100 (или даже 22) цифр в целочисленном числе - они доходят только до 2,147,483,647, и даже 64-битное целое число (или длинное) будет доходить только до 9,223,372,036,854,775,807 - для действительно очень больших чисел вам нужно подумать еще раз...
Рейтинг:
0
Patrice T
Решения 1 и 2 уже дают вам объяснение того, что не так в вашем коде.
Вместо того чтобы гадать, что может быть не так в вашем коде, используйте метод DIY, используйте отладчик чтобы увидеть, что на самом деле делает ваш код, вы найдете, что неправильно, сравнивая с тем, что он должен делать.
Совет: не пытайтесь упаковать свой код, чтобы сохранить строку или 2, вы ученик, попробуйте написать четкий код и поставить комментарии.
-----
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.