Исправить программу, чтобы ее часть была представлена в виде функции - 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;
}
}

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

  1. Входные данные представлены в виде массива m и целого числа n, где n - количество элементов в массиве.
  2. Переменная i инициализируется нулем и используется в цикле для прохода по всем элементам массива m.
  3. Внутри цикла переменная b принимает значение m[i], а переменные c и d инициализируются нулем и единицей соответственно.
  4. В цикле while происходит обработка каждого разряда числа, представленного в b.
  5. Переменная a принимает остаток от деления b на 10 и используется для представления текущего разряда числа.
  6. Значение b обновляется путем деления на 10.
  7. Если текущий разряд равен нулю, то переменная c обновляется путем сложения d и текущего значения c.
  8. Если текущий разряд не равен нулю и не равен 1, то переменная c обновляется путем умножения d на текущее значение c и добавления значения a.
  9. Значение d обновляется путем умножения на 10.
  10. После завершения цикла while, значение c представляет собой сумму всех разрядов числа, представленного в m[i].
  11. Значение m[i] заменяется на c.
  12. Цикл продолжается до тех пор, пока все элементы массива m не будут обработаны.
  13. Выход из функции не предусмотрен.

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


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

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

11   голосов , оценка 3.909 из 5
Похожие ответы