结构体数组s存储了n个人的名字和出生日期。写一函数,求这n个人中年龄最大的姓名 (即出生日期最小) 者的姓名 要求实现下列函数:char *oldest(struct student s[], int n);
时间: 2023-02-05 13:21:57 浏览: 123
可以使用以下步骤来实现上述函数:
1. 定义函数的输入参数,包括结构体数组 s 和数组长度 n。
2. 创建一个指向结构体 student 类型的指针变量 oldest,并初始化为 NULL。
3. 使用一个循环遍历结构体数组 s 中的每个元素。
4. 在循环中,判断当前元素的出生日期是否小于 oldest 指针所指向的元素的出生日期。如果是,则更新 oldest 指针,使其指向当前元素。
5. 在循环结束后,返回 oldest 指针所指向元素的名字。
以下是使用 C 语言实现上述函数的代码示例:
```
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int birthyear;
};
char *oldest(struct student s[], int n) {
struct student *oldest = NULL;
for (int i = 0; i < n; i++) {
if (oldest == NULL || s[i].birthyear < oldest->birthyear) {
oldest = &s[i];
}
}
return oldest->name;
}
int main() {
struct student s[] = {{"Alice", 2000}, {"Bob", 1999}, {"Eve", 1998}};
int n = sizeof(s) / sizeof(struct student);
printf("The oldest person is %s.\n", oldest(s, n));
return 0;
}
```
输出结果为:
```
The oldest person is Eve.
```
阅读全文