Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа - PascalABC.NET
Формулировка задачи:
Дан массив a(n). Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа.
Не могу понять, где ошибка, почему так?
Листинг программы
- var a: array[1..1000] of integer;
- i,k,n: integer;
- begin
- readln(n);
- for i := 1 to n do
- begin
- a[i] := random(100);
- write(a[i], ' ');
- end;
- for i := 1 to n do
- begin
- if a[i] mod 3 = 0 then
- begin
- while a[i]>0 do
- a[i] mod 10;
- k:=a[i] mod 10 + k;
- end;
- swap (a[i]; k)
- end;
- writeln;
- for i := 1 to n do
- write(a[i], ' ');
- end.
Решение задачи: «Каждый элемент, делящийся на 3, заменить на сумму цифр этого числа»
textual
Листинг программы
- uses arrays;
- begin
- var a : array of integer := CreateRandomIntegerArray(ReadInteger(), 0, 99); // инициализация массива
- a.Writeln(' '); // вывод исходного массива
- // следующая строка - собственно решение
- a := a.Select(i -> (i mod 3 = 0) ? IntToStr(i).ToCharArray().Sum(ch -> StrToInt(ch)) : i).ToArray();
- a.Writeln(' '); // вывод полученного массива
- end.
Объяснение кода листинга программы
- Создается массив случайных целых чисел от 0 до 99.
- Выводится исходный массив.
- Следующая строка кода заменяет каждый элемент массива, который делится на 3, на сумму его цифр.
- Выводится полученный массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д