如何遍历此链表以打印出年龄

时间:2017-05-08 23:16:00

标签: c linked-list

我有以下结构,在它下面,调用一个打印每个成员年龄的函数。

          struct details num[] = {
                  //number    //name /age /sex 
                {&num[0], "Jack", 18, male}
                {&num[1], "Jill", 23, female}
                {&num[2], "John", 43, male}
                {&num[3], "Kate", 34, female}

            }

            print_age(&num[0]);

包含该功能的另一个c文件:

           void print_age(struct details *d){
I need this function to traverse through the 'details' struct and print out the ages of
all members, i.e. 18,23,43,34

如何使用print_age函数实现上述功能?

1 个答案:

答案 0 :(得分:1)

假设结构定义如下:

struct details {
    char name[10];
    int age;
    char sex;
};

要打印年龄,您只需打印字段age即可。 使用您问题中的定义:

void print_age(struct details *d)

实现可以这样写:

void print_age(struct details *d){
    printf("%d\n", d->age);
}

要打印所有年龄段,您只需要为每个结构调用此函数。

for(i=0; i<4; i++)
    print_age(num+i);

如果你需要函数来接收整个数组并遍历它,你需要传递数组成员的数量,让print_age()知道有多少。

您应该考虑将打印功能更改为以下内容:

void print_age(struct details *d, int nmem){
    int i;
    for(i=0; i<nmem; i++)
        printf("%d\n", d->age);
}