Почему я получаю неожиданный вывод? - PullRequest
0 голосов
/ 14 мая 2019

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

Я написал код на языке C, а также на языке C ++, используя точно такие же функциино я получаю ожидаемый вывод из кода C ++, но код с использованием C не дает мне правильный вывод.

void sum(int *array, int length)
{
    int i,sum_of_array=0;
    for(i=0;i<length;i++)
    {
        sum_of_array=sum_of_array+ *(array+i);
        printf("%d",sum_of_array);
    }
}

int main()
{
    int array[]={-1,0,0,0,1,-1};
    sum(array,6);
    return 0;
}

Результат, который я получаю, равен -1-1-1-10-1, но ожидаемый результат должен быть -1.Пожалуйста, помогите мне с ошибкой.

1 Ответ

2 голосов
/ 14 мая 2019

Вы печатаете сумму внутри цикла. Держите отпечаток вне петли.

void sum(int *array, int length)
{
    int i,sum_of_array=0;
    for(i=0;i<length;i++)
    {
        sum_of_array=sum_of_array+ *(array+i);
    }
    // print here
    printf("%d",sum_of_array);
}

int main()
{
    int array[]={-1,0,0,0,1,-1};
    sum(array,6);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...