Страница 1 из 1

Помогите с С...

Добавлено: 13 фев 2010, 15:38
человечек
Программа с while , которая считает количество чисел в числе

Re: помогите с С...

Добавлено: 13 фев 2010, 16:15
Romeo
Наверное ты имел ввиду "количество цифр в числе"?

Если нужно сделать именно с while, то можно вот так:

Код: Выделить всё

int nValue;
std::cout << "Enter integer number: ";
std::cin >> nValue;

if (nValue < 0)
{
   nValue = -nValue;
}

int nCount = 0;
while (nValue > 0)
do
{
   ++nCount;
   nValue = nValue / 10;
}

std::cout << "Your number consits of " << nCount << " digits" << std::endl;
Но вообще-то есть более просто решение, не требующее использования цикла. Достаточно вспомнить школьный курс математики и сообразить, что целая часть десятичного логарифм, увеличенная на 1, как раз даст нам нужный ответ. Таким образом цикл можно заменить на следующую строку без потери функциональности:

Код: Выделить всё

nCount = log10(nValue) + 1;

P.S. Тема должна иметь осмысленное название и иметь прямое отношение к тому, что в ней обсуждается. Если это условие не выполнено, то тема может быть удалена на основании соглашения, которое ты подписал при регистрации. Короче, следующий раз больно замодерирую!