Как можно ввести массив под заданную функцию? - 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; Конец программы