
Вопрос задан 12.05.2020 в 18:39.
Предмет Информатика.
Спрашивает Gareev Ilsur.
Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр
организуйте через подпрограмму.

Ответы на вопрос

Отвечает Луговой Никита.
Var a,b,c,m1,m2,m3,max:integer;
function sum(n:integer):integer;
var s:integer;
begin
s:=0;
n:=abs(n);
while n>0 do
begin
s:=s+n mod 10;
n:=n div 10;
end;
sum:=s;
end;
begin
write('a, b, c: ');
readln(a,b,c);
m1:=sum(a); m2:=sum(b); m3:=sum(c);
writeln('m1 = ',m1,' m2 = ',m2,' m3 = ',m3);
if m1>m2 then max:=m1 else max:=m2;
if m3>max then max:=m3;
writeln('max = ',max);
end.
Пример:
a, b, c: 45 -3549 138
m1 = 9 m2 = 21 m3 = 12
max = 21
function sum(n:integer):integer;
var s:integer;
begin
s:=0;
n:=abs(n);
while n>0 do
begin
s:=s+n mod 10;
n:=n div 10;
end;
sum:=s;
end;
begin
write('a, b, c: ');
readln(a,b,c);
m1:=sum(a); m2:=sum(b); m3:=sum(c);
writeln('m1 = ',m1,' m2 = ',m2,' m3 = ',m3);
if m1>m2 then max:=m1 else max:=m2;
if m3>max then max:=m3;
writeln('max = ',max);
end.
Пример:
a, b, c: 45 -3549 138
m1 = 9 m2 = 21 m3 = 12
max = 21



Отвечает Мисюра Илья.
// PascalABC.NET 3.2, сборка 1403 от 16.03.2017
// Внимание! Если программа не работает, обновите версию!
function SumDigits(n:integer):integer;
begin
Result:=0;
while n>0 do begin
Result+=n mod 10;
n:=n div 10
end
end;
begin
var s:=ReadArrInteger('Вводите:',3).Select(x->SumDigits(x)).ToArray;
var i:=s.IndexMax;
var k:=s.Where(x->x=s[i]).Count;
case k of
1:begin
Write('Сумма цифр наибольшая у ');
case i of
0:Write('первого');
1:Write('второго');
2:Write('третьего');
end;
Writeln(' числа')
end;
2:begin
Write('Сумма цифр наибольшая у ');
if s[0]=s[1] then Writeln('первого и второго чисел')
else
if s[0]=s[2] then Writeln('первого и третьего чисел')
else Writeln('второго и третьего чисел')
end;
3:Writeln('Суммы цифр у всех трех чисел равны')
end
end.
Примеры
Вводите: 102030 324 19
Сумма цифр наибольшая у третьего числа
Вводите: 16453 4320 56341
Сумма цифр наибольшая у первого и третьего чисел
Вводите: 12345 12354 54321
Суммы цифр у всех трех чисел равны
// Внимание! Если программа не работает, обновите версию!
function SumDigits(n:integer):integer;
begin
Result:=0;
while n>0 do begin
Result+=n mod 10;
n:=n div 10
end
end;
begin
var s:=ReadArrInteger('Вводите:',3).Select(x->SumDigits(x)).ToArray;
var i:=s.IndexMax;
var k:=s.Where(x->x=s[i]).Count;
case k of
1:begin
Write('Сумма цифр наибольшая у ');
case i of
0:Write('первого');
1:Write('второго');
2:Write('третьего');
end;
Writeln(' числа')
end;
2:begin
Write('Сумма цифр наибольшая у ');
if s[0]=s[1] then Writeln('первого и второго чисел')
else
if s[0]=s[2] then Writeln('первого и третьего чисел')
else Writeln('второго и третьего чисел')
end;
3:Writeln('Суммы цифр у всех трех чисел равны')
end
end.
Примеры
Вводите: 102030 324 19
Сумма цифр наибольшая у третьего числа
Вводите: 16453 4320 56341
Сумма цифр наибольшая у первого и третьего чисел
Вводите: 12345 12354 54321
Суммы цифр у всех трех чисел равны


Топ вопросов за вчера в категории Информатика

Информатика 562

Информатика 404

Информатика 31

Информатика 76

Информатика 16

Информатика 41

Информатика 31
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili