У меня проблема в C. Это вопрос:C - using dynamic arrays
Разработка функции 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;
}
Проблема заключается в том, что я должен использовать динамические массивы и использовать таНос и перераспределить в программе для вычисления размера массива «на лету». Вместо указания размера массива и самих элементов я хочу, чтобы программа запрашивала у пользователя ввод, а пользователь вводит массив, и размер определяется там. Все должно быть динамичным. Я не знаю, как это делается. Может кто-нибудь, пожалуйста, помогите мне! благодаря!
Также я должен объяснить, как массив добавляется к себе, результат сохраняется в «a», а исходный массив теряется, заменяясь суммой. как я могу это объяснить?
Если вы хотите, чтобы массивы были динамическими, вы должны изменить функцию 'ADDER', чтобы получить один или два параметра, размер массивов. В противном случае «ADDER» не сможет узнать размер массивов. –
хорошо, но как? – Amjad
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?id=1043284351&answer=1047673478 – obo