c - 链表和函数

标签 c list

我的程序将姓名和年龄属性添加到人员列表中。我想要一个将“第一个”和“最后一个”指针传递到该列表的函数。从这里开始,我希望程序从第一个指针开始,并将该年龄添加到下一个指针,然后再添加到下一个指针,直到到达最后一个指针。

例如,如果我的列表是:

Jane(36 岁)、Bob(14 岁)、Rachel(10 岁)

我希望它的总和为 36 + 14 + 10 = 60

请帮忙!

到目前为止,我的函数原型(prototype)是

int total_age(person **f, person **l)
{
   int sum=0;
   person *temp;
   sum = sum + person->age;
}

如何从第一个到最后一个遍历每个 person.age 值?

最佳答案

既然你说这是一个链接列表,我假设每个 Person 对象都有一个指向列表中下一个人的指针。我将其称为 Person->next。我还假设列表中最后一个人的 next 值为 NULL。

那么您只需要迭代列表,添加每个节点的年龄即可。这只涉及创建一个 while 循环(并添加一个 return 语句):

int total_age(person **f, person **l)
{
   int sum = 0;
   person *temp = *f;
   while (temp != NULL)
   {
       sum = sum + temp->age;
       temp = temp->next;
   }
   return sum;
}

请注意,您实际上并不需要将列表中的最后一项传递给函数。

关于c - 链表和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436925/

相关文章:

c - 在位操作中使用 'char' 变量

c - 链表 C - 当不存在头时创建头

.net - VB.NET:二维列表几乎比一维列表慢 1000 倍?

python - 转换为 float 而不舍入小数位

python - 使用 python 将新列从列表 append 到 df

java - 使用 Item 类的 ArrayList 的销售点应用程序。如何从列表中返回孤立/特定的值?

c - 在分隔符处分割文本文件并在c中分隔整数和文本

c - 这段代码试图在 C 中连接字符串有什么问题?

c++ - 在具有不受支持的组件的目标上使用 -fsanitize 标志

r - 使用 lapply : How to paste object names to file names? 将数据帧列表写入文件