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
}