Консультация № 161062
21.02.2009, 12:28
0.00 руб.
0 1 1
Доюрое время суток! Подскажите как решить задачу: дано натуралное число n определить какая цифра в нём расположена левее: максимальная или минимальная?

Обсуждение

Неизвестный
21.02.2009, 13:21
общий
это ответ
Здравствуйте, XaciH!

Хорошая задачка. Выглядит заковыристо, а решается очень легко. Самая правая цифра числа = Num%10. Чтобы убрать самую последнюю цифру надо сделать Num/=10. Проходим все цифры слева направо и обновляем свои индексы. Осталось вставить это в код функции и прописать вывод.


//Нам нужны: цифры
int Min, Max;

//Индексы цифр (справа)
int iMin, iMax;

//Текущий индекс
int CurIndex;

//Устанавливаем все на самую правую цифру
CurIndex = iMin = iMax = 0;
Min = Max = Num%10;

while((Num/=10)!=0)//Еще остались циферки
{
int Z=Num%10;
CurIndex++;

if(Z<=Min)
{
Min=Z;
iMin=CurIndex;
}

if(Z>=Max)
{
Max=Z;
iMax=CurIndex;
}
}

if(iMax > iMin)
{
//Max левее
}
else if(iMin > iMax)
{
//Min левее
}
else
{
//Min=Max
}
Форма ответа