C语言经典例78-观察程序运行结果

1 题目

观察以下程序,说明该程序的功能:

#include <stdio.h>
#include <stdlib.h>
struct man {
    char name[20];
    int age;
}
person[3] = {"li", 18, "wang", 25, "sun", 22};
int main()
{
    struct man *q;
	struct man *p = person;
    int m = 0;
    for (int 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;
}

2 分析

该程序首先声明了一个结构体,里面包含姓名和年龄,随后创建了一个该结构体的数组并初始化了三个人的信息,在main函数中定义了该结构体的指针p指向结构体数组person,再用一个for循环判断年龄,可以发现程序每次将年龄与m相比较,而m初始是0,显然是要找出最大年龄者,并每次把最大年龄暂存到m中,以便下一轮循环比较,找出年龄大的人就把该人的首地址赋值给指针q,循环结束后删除最大年龄者的姓名与年龄。

所以该程序的功能是输出年龄最大者的姓名与年龄。

3 运行结果

wang 25
发布了125 篇原创文章 · 获赞 199 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/syzdev/article/details/104390727