выдавать результат без использования оператора print - PullRequest
0 голосов
/ 28 сентября 2019

Я столкнулся с проблемой, код которой -

int* plusOne(int* A, int n1) 
{
    int i=1;
    while((A[n1-i]+1==10)&&(i<n1))
    {
        A[n1-i]=0;
        i++;
    }    
    A[n1-i]++;
    for(i=0;i<n1;i++)
    {
        printf("%d",A[i]);
    }
}

Только позже я прочитал, что они хотят, чтобы я выдавал выходные данные с помощью операторов возврата.Я искал решение и нашел Возвращение массива с использованием C при переполнении стека, но я не могу его понять - пожалуйста, помогите.

1 Ответ

0 голосов
/ 28 сентября 2019

Давайте проанализируем ваш код шаг за шагом:

  1. присвоение 1 целочисленной переменной 1
  2. цикл там, это будет верно для 1-го раза, когда последний элементТолько 9, а также он должен иметь как минимум 2 элемента в массиве.

    на примере A = {....., 9,9}

    цикл будет истинным второй раз, если второйпоследний элемент только 9.После получения первого номера, отличного от 9, или достижения второго элемента он будет закончен.
    A = {.... b, a + 1,0,0}
    a - это первый номер, отличный от 9, или это может быть первый элемент.

  3. будет напечатан весь элемент .. независимо от того, есть ли 9 (в исходном массиве перед циклом), он напечатает 0.

...