2017-05-08 68 views
0

我有以下結構,並且在它下面,打印一個函數打印每個成員的年齡。如何遍歷這個鏈表來打印年齡段

  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?

+0

看起來像你的老師給你,你需要做的一切遍歷。你在問如何調用'printf'? –

+0

你的變量被稱爲「數字」而不是「細節」。 'struct details'是一個類型。 UNless我錯過了一些東西,你沒有鏈接列表,你有4個結構的數組。另外,你不需要用'&number [0]'調用'print_age',這是多餘的。用'號碼' – beeselmane

+0

來調用它。具有諷刺意味的是,這個問題中沒有足夠的信息來提供答案。 – paddy

回答

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); 
}