Как можно ввести массив под заданную функцию? - C (СИ)

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

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

void addition(int a[], int b[]){
    int length;
    if ((sizeof(a) / 4) > (sizeof(b) / 4))
 
        length = (sizeof(a) / 4) + 1;
    else
        length = (sizeof(b) / 4) + 1;
    
    for (int pos = 0; pos < length; pos++)
    {
        b[pos] += a[pos];
        b[pos + 1] += (b[pos] / 10); // перенос в след разряд
        b[pos] %= 10; // отсекание
    }

}
Как можно ввести массив под эту функцию ?

Решение задачи: «Как можно ввести массив под заданную функцию?»

textual
Листинг программы
#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h> 
void addition(int a[], int b[],int length)
{
    for (int pos = length-1; pos >=0; pos--)
    {
        b[pos] += a[pos];
        if(pos>0)
        {
          b[pos-1] += (b[pos] / 10); // перенос в след разряд
          b[pos] %= 10; // отсекание
        }
    }
}
void main()
{
   const int n=6;
   int x[n],y[n];
   int i;
   for(i=0;i<n;i++)
   {
       x[i]=rand()%10;
       y[i]=rand()%10;
   }
   for(i=0;i<n;i++)
      printf("%d",x[i]);
   printf("\n");
   for(i=0;i<n;i++)
      printf("%d",y[i]);
   printf("\n");
   printf("\n");
   addition(x,y,n);
   for(i=0;i<n;i++)
      printf("%d",y[i]);
   printf("\n");
   getch();
}

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

В этом коде выполняется сложение двух массивов целых чисел, после чего результат выводится на экран. Вот список действий, которые выполняются в этом коде, выделенные значения переменных в скобках:

  1. #include Подключение библиотеки для работы с консолью
  2. #include Подключение библиотеки для работы с выводом в консоль
  3. #include Подключение библиотеки для работы с генерацией случайных чисел
  4. void addition(int a[], int b[],int length) Функция для сложения двух массивов
  5. for (int pos = length-1; pos >=0; pos--) Цикл для прохода по всем элементам массива
  6. b[pos] += a[pos]; Сложение элементов массива a и b
  7. if(pos>0) Проверка, что позиция не равна нулю
  8. b[pos-1] += (b[pos] / 10); Перенос значения из десятеричного разряда в следующий
  9. b[pos] %= 10; Отсекание значения в десятеричном разряде
  10. void main() Точка входа в программу
  11. const int n=6; Объявление константы, определяющей размер массива
  12. int x[n],y[n]; Объявление двух массивов целых чисел
  13. int i; Объявление переменной для цикла
  14. for(i=0;i<n;i++) Цикл для заполнения массивов случайными числами
  15. x[i]=rand()%10; Генерация случайного числа от 0 до 9
  16. y[i]=rand()%10; Генерация случайного числа от 0 до 9
  17. for(i=0;i<n;i++) Цикл для вывода массива x на экран
  18. printf(%d,x[i]); Вывод значения элемента массива x на экран
  19. printf(\n); Перевод строки
  20. for(i=0;i<n;i++) Цикл для вывода массива y на экран
  21. printf(%d,y[i]); Вывод значения элемента массива y на экран
  22. printf(\n); Перевод строки
  23. addition(x,y,n); Вызов функции для сложения массивов
  24. for(i=0;i<n;i++) Цикл для вывода массива y на экран после сложения
  25. printf(%d,y[i]); Вывод значения элемента массива y на экран
  26. getch(); Получение нажатой клавиши из консоли (необходимо для работы с библиотекой conio.h)
  27. return 0; Конец программы

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


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

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

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