суммированный список - PullRequest
       1

суммированный список

0 голосов
/ 22 сентября 2011

Мне нужно суммировать переменную внутри моего связанного списка. У меня есть следующая функция, но я получаю ошибки в отмеченной строке. Я также думаю, что, возможно, неправильно завершил оператор if для возврата суммированного значения в функцию.

int print_nodeprice1 (node *headptr, int num) {
int sum = 0;
node *first;
first = *headptr;    // getting errors that I can't assign this
while (first != NULL) {
    first = first -> next_ptr;
    if (num == first -> price1)
        return sum;
    else {
        printf("\n");
    }
  }
}

Ответы [ 6 ]

1 голос
/ 22 сентября 2011

У вас есть пара проблем:

  1. Назначьте first = headptr вместо * headptr
  2. Проверьте num в верхней части цикла, прежде чем устанавливать first = first-> далее
  3. На самом деле вы ничего не суммируете.Вы хотели увеличить свою переменную суммы?
1 голос
/ 22 сентября 2011
first = headptr;   

это будет работать .. так как оба имеют тип (узел *)

0 голосов
/ 22 сентября 2011

first - указатель на node. headptr - указатель на node. *headptr это узел. Вы не можете присвоить node указателю node.

0 голосов
/ 22 сентября 2011

Вам не нужно *. Это должно быть просто:

first = headptr;

first и headptr относятся к типу node*. Оператор * разыменовывает их, поэтому *headptr имеет тип node, а не node*.

0 голосов
/ 22 сентября 2011
int print_nodeprice1 (node *headptr, int num) {
node *first;
first = *headptr;    // getting errors that I can't assign this

first - указатель на node, headptr - также указатель на node.Теперь вы пытаетесь присвоить first результат разыменования headptr.

0 голосов
/ 22 сентября 2011
first = *headptr;    // getting errors that I can't assign this

Правильно - вы пытаетесь присвоить значение (разыменование) указателю.

first = headptr;

Помимо этого ... Непонятно, что вы имеете в виду под "суммированием переменной внутри моего связанного списка". Ваш код возвращает 0, когда находит price1, равный num, который вы передаете.

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