2011-09-22 14 views
0

我需要在我的链表中添加一个变量。我有以下功能,但是我在提到的那一行出现错误。我也认为我可能没有正确完成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"); 
    } 
    } 
} 
+1

heh。没有人知道哪一个要高调。 – quasiverse

+0

道德轮转弯...(Animaniacs参考。下车我的草坪) –

回答

0
first = *headptr; // getting errors that I can't assign this 

正确 - 你试图赋值(解引用)的指针。

first = headptr; 

除此之外......目前还不清楚你的意思是“在我的链表中添加一个变量”。你的代码返回0当它找到一个price1即等于num你通过。

0
int print_nodeprice1 (node *headptr, int num) { 
node *first; 
first = *headptr; // getting errors that I can't assign this 

first是一个指向nodeheadptr也是一个指针node。现在您尝试分配first引用headptr的结果。

0

您不需要*。它应该只是:

first = headptr; 

firstheadptrnode*类型。 *运算符将它们解除引用,因此*headptr的类型为node,而不是node*

1
first = headptr; 

这将work..since两者都是类型的(节点*)

0

first是指向nodeheadptr是指向node*headptr是一个节点。您不能将node分配给指向node的指针。

1

你有几个问题:

  1. 配第一= headptr,而不是* headptr
  2. 做你的NUM检查在循环的顶部,首先设置= 一线>未来
  3. 你实际上并没有总结任何东西。你是否想要增加你的 总和变量?