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

學生資料結構排序練習:依學號輸出與院系統計

     編輯:關於C++

題目需求

  • 定義學生結構體:姓名、學號、性別、院系
  • 輸入 5 筆學生資料
  • 依學號遞增排序輸出
  • 輸入欲統計院系名稱(原題未完整實現統計功能)

程式碼實作

#include 
#include 

typedef struct {
    char name[10];
    int num;
    char sex;
    char zy[80]; // 院系
} School;

int main() {
    School stu[5], tmp;
    int i, j;

    // 輸入 5 筆資料
    for (i = 0; i < 5; ++i)
        scanf("%s %d %c %s", stu[i].name, &stu[i].num, &stu[i].sex, stu[i].zy);

    // 氣泡排序(依學號遞增)
    for (i = 1; i <= 5; ++i)
        for (j = 0; j <= 3; ++j)
            if (stu[j].num > stu[j+1].num) {
                tmp = stu[j];
                stu[j] = stu[j+1];
                stu[j+1] = tmp;
            }

    // 輸出排序結果
    for (i = 0; i < 5; ++i)
        printf("%s %d %c %s\n", stu[i].name, stu[i].num, stu[i].sex, stu[i].zy);

    return 0;
}

執行結果示意

執行結果截圖

改進建議

  • 使用 qsort 替代氣泡排序,效能更佳
  • 增加院系統計功能:輸入院系名後計算該院系學生數
  • 加強輸入驗證(緩衝區溢位防護、格式檢查)
  • 結構體命名建議改為 Student 更具語意
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved