Bogqwerty
16.10.2020 16:55

На языке паскаля дано натуральное число n. напишите функцию int mindigit (int n) (c/c++), function mindigit (n: longint): integer (pascal) и int maxdigit (int n) (c/c++),function maxdigit (n: longint): integer (pascal), определяющую наименьшую и наибольшую цифры данного числа. формат входных данных задано единственное число формат выходных данных необходимо вывести наименьшую и наибольшую цифры данного числа через пробел.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Zazasalka174
20.06.2020 04:25
Сделать эту задачу можно двумя Первый - чисто арифметический. Второй - более хитрый, через операции над строками. Мы пойдем вторым путем, он короче и практичней, такой код будет требовать меньше ресурсов машины для реализации (что незаметно в таких маленьких задачках, но довольно критично в реальной жизни, поэтому учимся писать дальновидные коды).

Var n:longint;

Function MinDigit(n:longint):integer;
var s,a:string; c,i:integer;
begin
 str(n,s);
 a:=s[1];
 for i:=2 to length(s) do
   if s[i]<a then a:=s[i];
 val(a,n,c);
 MinDigit:=n;
end;

Function MaxDigit(n:longint):integer;
var s,a:string; c,i:integer;
begin
 str(n,s);
 a:=s[1];
 for i:=2 to length(s) do
   if s[i]>a then a:=s[i];
 val(a,n,c);
 MaxDigit:=n;
end;

Begin
 readln(n);
 writeln(MinDigit(n),' ',MaxDigit(n));
End.

По факту переменную "c" можно убрать из функций и использовать вместо нее уже не нужную в конце "i", таким образом избавившись от одной переменной. Но это не принципиально на самом деле, к тому же так понятней, какая переменная за что отвечает.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота