У меня проблема в C. Это вопрос:
Разработка функции C ADDER, которая добавляет два целых массива вместе. У ADDER должно быть только два параметра, которые являются двумя массивами, которые нужно добавить. Второй аргумент массива будет содержать сумму массивов при выходе. Оба параметра должны быть переданы по ссылке.
Напишите программу на C для проверки функции ADDER с помощью вызова ADDER (A, A), где A - это массив, который нужно добавить к себе. Массив A может быть любого размера с любыми значениями. Напишите, скомпилируйте и выполните программу.
Объясните результаты программы.
Пока я решил это таким образом, и он прекрасно работает:
#include <stdio.h>
// using namespace std;
const int SIZE = 5;
/* Adds two arrays and saves the result in b
* Assumes that b is larger than or equal to a in size
*/
void ADDER(int (&a)[SIZE], int (&b)[SIZE]) {
int aSize, bSize, i; /* variable declaration */
/* find out the sizes first */
aSize = sizeof (a) / sizeof (int);
bSize = sizeof (b) / sizeof (int);
/* add the values into b now */
for (i = 0; i < aSize; i++) {
b[i] = b[i] + a[i];
}
/* we have the sum at the end in b[] */
}
/* Test program for ADDER */
int main() {
int i; /* variable declaration */
int a[] = {1, 2, 3, 4, 5}; /* the first array */
/* add them now */
ADDER(a, a);
/* print results */
printf("\nThe sum of the two arrays is: ");
for (i = 0; i < SIZE; i++) {
printf("%d ", a[i]); /* print each element */
}
return 0;
}
Проблема в том, что мне нужно использовать динамические массивы и использовать malloc и realloc в программе для вычисления размера массива на лету. Вместо того, чтобы указывать размер массива и сами элементы, я хочу, чтобы программа запросила ввод данных пользователем, и пользователь вводит массив, и размер там определяется. Все должно быть динамично. Я не знаю, как это делается. Может кто-нибудь, пожалуйста, помогите мне! Спасибо!
Также я должен объяснить, как массив добавляется к самому себе, результат сохраняется в «а», а исходный массив теряется и заменяется суммой. как я могу это объяснить?