31.05.2016, 12:17
общий
это ответ
Здравствуйте, dasha.com!
Где-то так...
1) Надо было сохранить старое значение числа
2) Новое число получается обнулением младшего разряда (делением и умножением на 10) и складыванием с максимальной цифрой.
На мой взгляд, проверять на совпадение максимальной цифры с младшей необязательно, хотя можно и оставить, дело вкуса...
[code h=200]
/**
Дано натуральное число N. Получить новое число M, которое образуется из числа
N путём замены последней цифры на значение наибольшей цифры в записи числа N.
Пример. N=128452, M=128458
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
system("chcp 1251 > nul");
int n,m,max=0,k;
printf("\nВведите натуральное число N: ");
scanf("%d",&n);
m = n;
while (n>0)
{
k=n%10;
if (k>max)
max=k;
n=n/10;
}
m=(m/10)*10+max;
printf ("Новое число M = %d\n", m);
return 0;
}
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен