Как можно ввести массив под заданную функцию? - 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(); }
Объяснение кода листинга программы
В этом коде выполняется сложение двух массивов целых чисел, после чего результат выводится на экран. Вот список действий, которые выполняются в этом коде, выделенные значения переменных в скобках:
- #include
Подключение библиотеки для работы с консолью - #include
Подключение библиотеки для работы с выводом в консоль - #include
Подключение библиотеки для работы с генерацией случайных чисел - void addition(int a[], int b[],int length) Функция для сложения двух массивов
- for (int pos = length-1; pos >=0; pos--) Цикл для прохода по всем элементам массива
- b[pos] += a[pos]; Сложение элементов массива a и b
- 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; Генерация случайного числа от 0 до 9
- y[i]=rand()%10; Генерация случайного числа от 0 до 9
- for(i=0;i<n;i++) Цикл для вывода массива x на экран
- printf(
%d
,x[i]); Вывод значения элемента массива x на экран - printf(
\n
); Перевод строки - for(i=0;i<n;i++) Цикл для вывода массива y на экран
- printf(
%d
,y[i]); Вывод значения элемента массива y на экран - printf(
\n
); Перевод строки - addition(x,y,n); Вызов функции для сложения массивов
- for(i=0;i<n;i++) Цикл для вывода массива y на экран после сложения
- printf(
%d
,y[i]); Вывод значения элемента массива y на экран - getch(); Получение нажатой клавиши из консоли (необходимо для работы с библиотекой conio.h)
- return 0; Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д