C语言练习题-C语言练习题实例78
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
程序分析:程序中没有明显的问题,可以正常输出年龄最大的人的姓名和年龄。
实例
#include<stdio.h>
struct man {
char name[20];
int age;
} person[3] = {"li", 18, "wang", 25, "sun", 22};
int main() {
struct man *q, *p;
int i, m = 0;
p = person;
for (i = 0; i < 3; i++) {
if (m < p->age) {
m = p->age;
q = p;
}
p++;
}
printf("%s %d\n", q->name, q->age);
return 0;
}
在上述代码中,我们定义了一个结构体 man
,其中包含姓名和年龄两个成员变量。
然后,我们创建了一个结构体数组 person
,其中存储了3个人的姓名和年龄。
接下来,我们声明了两个指向结构体的指针 q
和 p
,并初始化 p
指向结构体数组的首个元素。
在 for
循环中,我们遍历结构体数组,比较每个人的年龄,找到年龄最大的人并将其赋值给指针 q
。
最后,我们使用 printf()
函数输出指针 q
所指向的人的姓名和年龄。
以上实例运行时,会输出年龄最大的人的姓名和年龄。例如,输出结果为:
wang 25
程序中没有明显的问题,能够正常输出年龄最大的人的姓名和年龄。