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

C語言二維陣列實作:3學生×3科成績總分平均計算與統計

     編輯:關於C

資料結構設計

float stu[3][3]:
第 1 維 = 學生索引 (0~2)
第 2 維 = 科目索引 (0=英文, 1=微積分, 2=C語言)

完整程式碼

#include <stdio.h>

int main()
{
    float stu[3][3];
    float sum[3] = {0}, avg[3] = {0};
    const char* subject[3] = {"英文", "微積分", "C語言"};

    // 輸入階段
    for (int i = 0; i < 3; i++) {
        printf("第 %d 位同學成績:\n", i+1);
        for (int j = 0; j < 3; j++) {
            printf("  %s: ", subject[j]);
            scanf("%f", &stu[i][j]);
        }
    }

    // 計算階段
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            sum[i] += stu[i][j];

    for (int i = 0; i < 3; i++)
        avg[i] = sum[i] / 3.0;

    // 輸出階段
    printf("\n=== 學生成績統計 ===\n");
    for (int i = 0; i < 3; i++) {
        printf("學生 %d: 總分 %.1f  平均 %.1f\n", i+1, sum[i], avg[i]);
    }

    // 進階:各科平均
    printf("\n=== 各科平均 ===\n");
    for (int j = 0; j < 3; j++) {
        float subSum = 0;
        for (int i = 0; i < 3; i++) subSum += stu[i][j];
        printf("%s: %.1f\n", subject[j], subSum/3.0);
    }
    return 0;
}

執行範例

=== 學生成績統計 ===
學生 1: 總分 253.0  平均 84.3
學生 2: 總分 235.0  平均 78.3
學生 3: 總分 275.0  平均 91.7

=== 各科平均 ===
英文: 82.3
微積分: 86.0
C語言: 86.0

陣列 vs 變數對比

記憶體佈局圖解

stu[3][3] 在記憶體中連續排列:
stu[0][0] stu[0][1] stu[0][2]  stu[1][0] stu[1][1] stu[1][2]  stu[2][0] stu[2][1] stu[2][2]
  英1       微1       C1          英2       微2       C2          英3       微3       C3
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
特性獨立變數版 (ID 1434)二維陣列版 (本題)
程式碼行數較少較多
資料保留無(處理完即丟)完整保留
後續分析困難容易(各科統計、排序等)
擴展性差佳(增學生/科目只改常數)