Исправить программу, чтобы ее часть была представлена в виде функции - C (СИ)
Формулировка задачи:
#include <stdio.h> int main () { int mas[100],m[100],i,j,n,a,b,c,d; printf ("Vvedite kolichestvo chisel\n"); scanf ("%d", &n); printf ("Vvedite chisla\n"); for (i=0; i<n; i++) {scanf ("%d", &mas[i]); m[i]=mas[i];} for (i=0; i<n; i++) {b=m[i]; c=0; d=1; while (b!=0) { a=b%10; b=b/10; if (a==0) c=d+c; if ((a!=0)&(a!=1)) c=a*d+c; d=d*10; } m[i]=c; } printf ("Massiv 1\n"); for (i=0; i<n; i++) printf ("%d\n", mas[i]); printf ("Massiv 2\n"); for (i=0; i<n; i++) printf ("%d\n", m[i]); }
for (i=0; i<n; i++) {b=m[i]; c=0; d=1; while (b!=0) { a=b%10; b=b/10; if (a==0) c=d+c; if ((a!=0)&(a!=1)) c=a*d+c; d=d*10; } m[i]=c; }
Решение задачи: «Исправить программу, чтобы ее часть была представлена в виде функции»
textual
Листинг программы
void solve (int m[], int n){ int i,a,b,c,d; for (i=0; i<n; i++) {b=m[i]; c=0; d=1; while (b!=0) { a=b%10; b=b/10; if (a==0) c=d+c; if ((a!=0)&(a!=1)) c=a*d+c; d=d*10; } m[i]=c; } }
Объяснение кода листинга программы
- Входные данные представлены в виде массива
m
и целого числаn
, гдеn
- количество элементов в массиве. - Переменная
i
инициализируется нулем и используется в цикле для прохода по всем элементам массиваm
. - Внутри цикла переменная
b
принимает значениеm[i]
, а переменныеc
иd
инициализируются нулем и единицей соответственно. - В цикле
while
происходит обработка каждого разряда числа, представленного вb
. - Переменная
a
принимает остаток от деленияb
на 10 и используется для представления текущего разряда числа. - Значение
b
обновляется путем деления на 10. - Если текущий разряд равен нулю, то переменная
c
обновляется путем сложенияd
и текущего значенияc
. - Если текущий разряд не равен нулю и не равен 1, то переменная
c
обновляется путем умноженияd
на текущее значениеc
и добавления значенияa
. - Значение
d
обновляется путем умножения на 10. - После завершения цикла
while
, значениеc
представляет собой сумму всех разрядов числа, представленного вm[i]
. - Значение
m[i]
заменяется наc
. - Цикл продолжается до тех пор, пока все элементы массива
m
не будут обработаны. - Выход из функции не предусмотрен.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д