Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Дан массив a(n). Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа. Не могу понять, где ошибка, почему так?
Листинг программы
  1. var a: array[1..1000] of integer;
  2. i,k,n: integer;
  3. begin
  4. readln(n);
  5. for i := 1 to n do
  6. begin
  7. a[i] := random(100);
  8. write(a[i], ' ');
  9. end;
  10. for i := 1 to n do
  11. begin
  12. if a[i] mod 3 = 0 then
  13. begin
  14. while a[i]>0 do
  15. a[i] mod 10;
  16. k:=a[i] mod 10 + k;
  17. end;
  18. swap (a[i]; k)
  19. end;
  20. writeln;
  21. for i := 1 to n do
  22. write(a[i], ' ');
  23. end.

Решение задачи: «Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа»

textual
Листинг программы
  1. uses arrays;
  2. begin
  3.   var a : array of integer := CreateRandomIntegerArray(ReadInteger(), 0, 99); // инициализация массива
  4.   a.Writeln(' '); // вывод исходного массива
  5.   // следующая строка - собственно решение
  6.   a := a.Select(i -> (i mod 3 = 0) ? IntToStr(i).ToCharArray().Sum(ch -> StrToInt(ch)) : i).ToArray();
  7.   a.Writeln(' '); // вывод полученного массива
  8. end.

Объяснение кода листинга программы

  1. Создается массив случайных целых чисел от 0 до 99.
  2. Выводится исходный массив.
  3. Следующая строка кода заменяет каждый элемент массива, который делится на 3, на сумму его цифр.
  4. Выводится полученный массив.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы