Мне нужно написать функцию, которая вычитает цифры.Если пользователь вводит 2345, выход должен быть 111 (5-4, 4-3, 3-2);другим примером будет 683, где вывод должен быть 25 (3-8 (взято значение abs), 8-6).
Я написал следующий код, который работает только тогда, когда размер массиваобъявлено.
int subtraction(int arr[], int size) {
int sub = 0;
for (int i = 0; i < size-1; i++) {
sub = sub * 10 + abs(arr[i] - arr[i+1]);
}
return sub;
}
Однако число, которое вводит пользователь, является случайным и может иметь различные цифры, поэтому я не знаю, какой предел ввести в цикл for.
Например,:
int arr[] = {1, 2, 55, 56, 65, 135}, i;
subtraction(arr, 6);
for (i=0; i<6; i++)
printf("%d ", arr[i]);
ожидаемый вывод: 0 0 0 1 1 22 * 1011 *
Предполагается, что функция должна вычитать последнюю или последнюю цифру из последней, кстати, / из правойвлево / от случайного числа, которое вводит пользователь;например, если вход 5789, выход должен быть 211 (9-8, 8-7, 7-5);если пользователь вводит отрицательное число, программа должна принять его абсолютное значение, а затем выполнить вычитание.Если пользовательский ввод представляет собой однозначное число, результат должен быть 0.
Функция, которую я написал, работает, только когда объявлен размер массива.Я не знаю, как заставить это работать, когда размер не объявлен (я полагаю, что нужны указатели и malloc, поскольку это то, что мне удалось выяснить, прибегая к помощи в поисках товаров, но, к сожалению, я не знаю, как это сделать).
пожалуйста, помогите?