C - 总和链表

  • 本文关键字:链表 linked-list
  • 更新时间 :
  • 英文 :


>我需要对链表中的一个变量求和。我有以下功能,但我注意到错误。我还认为我可能没有正确完成 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");
    }
  }
}
first = headptr;   

这将起作用..由于两者都是类型(节点 *(

您有几个问题:

  1. 分配 first = headptr,而不是 *headptr
  2. 设置第一个 = 之前,在循环顶部进行数字检查 =首页>下一页
  3. 你实际上并没有总结任何东西。你的意思是增加你的总和变量?
first = *headptr;    // getting errors that I can't assign this

正确 - 您正在尝试将值(取消引用(分配给指针。

first = headptr;

除此之外...目前还不清楚你所说的"对我的链表内的变量求和"是什么意思。代码在找到等于传入numprice1时返回0

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

first是指向node的指针,headptr也是指向node的指针。现在,您尝试将删除引用headptr的结果分配给first

你不需要* .它应该只是:

first = headptr;

firstheadptr属于 node* 型。*运算符取消引用它们,因此*headptr类型为 node ,而不是 node*

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

相关内容

  • 没有找到相关文章

最新更新