Сумма массива с использованием указателей - PullRequest
0 голосов
/ 30 октября 2019
#include <stdio.h>


int arrsum(int *, int *);

int main(void){
    int a[]={1,2,3,4,5,6,7,8,9,10};


    printf("\nSum: %d\n", arrsum(a,a+9));
    return 0;
}

int arrsum(int *p, int *q){
    int sum;
    for(;p<=q;++p){
        sum+=*p;
    }
    return sum;
}

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

Ответы [ 2 ]

2 голосов
/ 30 октября 2019

Заменить:

int sum;

на

int sum = 0;
0 голосов
/ 30 октября 2019

Каждое утверждение пишется. Просто инициализируйте Sum для любого числа, поскольку компилятор присвоил сумме значение мусора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...