我的程序将姓名和年龄属性添加到人员列表中。我想要一个将“第一个”和“最后一个”指针传递到该列表的函数。从这里开始,我希望程序从第一个指针开始,并将该年龄添加到下一个指针,然后再添加到下一个指针,直到到达最后一个指针。
例如,如果我的列表是:
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/