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

C語言結構體數組完整實戰:學生成績管理系統(輸入、平均、排序、表格輸出、單科統計)

     編輯:C 語言基礎

結構體數組定義與成員訪問

struct stu {
    char name[20];
    long number;
    float score[4];  // 0-2 三科,3 存平均
};
struct stu stud[20];  // 20 學生
// 訪問:stud[i].name, stud[i].score[j]

模組化設計七步走

  1. 輸入模組 input(arr, n):用 gets 讀姓名、學號、三科分,atol/atoi 轉數值。
  2. 平均計算 aver(arr, n):累加前三科存入 score[3]。
  3. 排序模組 order(arr, n):冒泡法按 score[3] 降序,整結構體交換(temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp;)。
  4. 表格輸出 output(arr, n):格式化列印姓名、學號、三科、平均,含表頭分隔線。
  5. 單科統計 out_row(arr, n):算四欄(三科+平均)平均,最後一行輸出。
  6. 主函數 串聯調用上述五模組。

完整程式碼骨架

#include 
#include 
struct stu { char name[20]; long number; float score[4]; };
void input(struct stu[], int);
void aver(struct stu[], int);
void order(struct stu[], int);
void output(struct stu[], int);
void out_row(struct stu[], int);
main() {
    struct stu stud[4];
    input(stud,4); aver(stud,4); order(stud,4);
    output(stud,4); out_row(stud,4);
}
/* 各函數實現見原文 */

關鍵技術點

  • 結構體數組作參數傳首址,形參寫 struct stu arr[] 不指定長度。
  • 結構體整體可賦值交換,不可整體 I/O。
  • 排序比較用 score[3],交換整個元素。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved