首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例78:查找年齡最大的人(結構體指針遍歷)

     編輯:C 語言實例練習

C語言練習實例78:查找年齡最大的人(結構體指針遍歷)

本實例定義結構體數組存儲 3 人姓名年齡,使用指針遍歷找出年齡最大者並輸出。

程序分析

  • 結構體 man 包含 name[20] 和 age。
  • 初始化數組 person[3]。
  • 指針 p 指向數組首元素,q 記錄當前最大者地址。
  • 循環遍歷,若 p->age > m 更新 m 和 q,然後 p++ 移動到下一個。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>

struct man {
    char name[20];
    int age;
} person[3] = {"li", 18, "wang", 19, "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;
}

運行結果

sun 22

注意

原代碼中 q=p++ 寫法有誤(應在更新 q 後再 p++),修正版已在上方展示。指針遍歷結構體數組是 C 語言常用技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved