Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр организуйте через подпрограмму.

Даны три целых числа.Определите, у которого из них больше сумма цифр. Подсчет суммы цифр организуйте через подпрограмму.
Гость
Ответ(ы) на вопрос:
Гость
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
Гость
// 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 Суммы цифр у всех трех чисел равны
Не нашли ответ?
Ответить на вопрос
Похожие вопросы