c语言输出家谱信息代码
时间: 2023-07-31 13:05:24 浏览: 121
c语言谱曲代码.txt
这里是一个简单的 C 语言代码示例,用于输出一个家谱信息:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
char gender;
struct Person *father;
struct Person *mother;
};
void printPerson(struct Person *person, int level) {
int i;
for (i = 0; i < level; i++) {
printf(" ");
}
printf("%s (%d, %c)\n", person->name, person->age, person->gender);
if (person->father != NULL) {
printPerson(person->father, level + 1);
}
if (person->mother != NULL) {
printPerson(person->mother, level + 1);
}
}
int main() {
struct Person alice = {"Alice", 60, 'F', NULL, NULL};
struct Person bob = {"Bob", 62, 'M', NULL, NULL};
struct Person carol = {"Carol", 35, 'F', &alice, &bob};
struct Person dave = {"Dave", 40, 'M', &alice, &bob};
struct Person eve = {"Eve", 8, 'F', &carol, &dave};
printPerson(&eve, 0);
return 0;
}
```
这个程序定义了一个 `Person` 结构体,包含了姓名、年龄、性别、父亲和母亲的指针。然后,定义了一些家庭成员的实例,并将它们组织成家谱树。
`printPerson` 函数递归地输出家谱信息。它接受一个指向 `Person` 结构体的指针和一个缩进级别,然后打印出该人的信息并递归地打印出其父亲和母亲的信息(如果它们存在)。
在 `main` 函数中,我们创建了一个家庭成员的层次结构,并使用 `printPerson` 函数输出了家谱信息。
阅读全文