Skip to content

动手实践

恭喜你!你已经学完了 C 语言的基础知识。现在是时候把这些知识串联起来,做一个真正的小项目了。

💡 项目需求

我们要做一个学生成绩管理系统,功能包括:

  • 输入 5 个学生的成绩
  • 计算最高分
  • 计算最低分
  • 计算平均分
  • 统计及格人数(60分及以上)

📝 完整代码

把下面的代码保存为 score_manager.c

c
#include <stdio.h>

int main() {
    // 定义变量
    float scores[5];
    float sum = 0;
    float average;
    float max_score;
    float min_score;
    int pass_count = 0;
    
    // 输入5个学生的成绩
    printf("=== 学生成绩管理系统 ===\n");
    printf("请输入5个学生的成绩:\n");
    for (int i = 0; i < 5; i++) {
        printf("学生%d的成绩: ", i + 1);
        scanf("%f", &scores[i]);
        sum = sum + scores[i];
    }
    
    // 初始化最高分和最低分
    max_score = scores[0];
    min_score = scores[0];
    
    // 计算最高分、最低分和及格人数
    for (int i = 0; i < 5; i++) {
        if (scores[i] > max_score) {
            max_score = scores[i];
        }
        if (scores[i] < min_score) {
            min_score = scores[i];
        }
        if (scores[i] >= 60) {
            pass_count = pass_count + 1;
        }
    }
    
    // 计算平均分
    average = sum / 5;
    
    // 输出结果
    printf("\n=== 统计结果 ===\n");
    printf("最高分: %.2f\n", max_score);
    printf("最低分: %.2f\n", min_score);
    printf("平均分: %.2f\n", average);
    printf("及格人数: %d\n", pass_count);
    
    return 0;
}

代码重点

高亮的代码行是核心逻辑:

  • 8-12行:声明所需的变量(Variable)
  • 15-20行:循环(Loop)输入成绩并累加
  • 23-30行:初始化并查找最值
  • 33-41行:计算平均分并输出结果

🚀 如何运行这个程序

第一步:编译代码

打开终端(Terminal)或命令提示符(Command Prompt),输入:

bash
gcc score_manager.c -o score_manager

注意

如果提示找不到 gcc 命令,说明编译器(Compiler)还没安装好。

第二步:运行程序

编译成功后,执行:

bash
./score_manager

Windows 用户

在 Windows 系统上,执行命令是:

bash
score_manager.exe

第三步:输入数据

程序运行后会提示你输入成绩,你可以这样输入:

=== 学生成绩管理系统 ===
请输入5个学生的成绩:
学生1的成绩: 85
学生2的成绩: 92
学生3的成绩: 78
学生4的成绩: 55
学生5的成绩: 88

第四步:查看结果

输入完成后,程序会自动计算并显示:

=== 统计结果 ===
最高分: 92.00
最低分: 55.00
平均分: 79.60
及格人数: 4

💪 练习题

练习 1:添加不及格统计

在原有代码基础上,增加统计不及格人数的功能。

点击查看答案
c
#include <stdio.h>

int main() {
    float scores[5];
    float sum = 0;
    float average;
    float max_score;
    float min_score;
    int pass_count = 0;
    int fail_count = 0;  // 新增:不及格人数
    
    printf("=== 学生成绩管理系统 ===\n");
    printf("请输入5个学生的成绩:\n");
    for (int i = 0; i < 5; i++) {
        printf("学生%d的成绩: ", i + 1);
        scanf("%f", &scores[i]);
        sum = sum + scores[i];
    }
    
    max_score = scores[0];
    min_score = scores[0];
    
    for (int i = 0; i < 5; i++) {
        if (scores[i] > max_score) max_score = scores[i];
        if (scores[i] < min_score) min_score = scores[i];
        if (scores[i] >= 60) {
            pass_count++;
        } else {
            fail_count++;  // 新增:统计不及格
        }
    }
    
    average = sum / 5;
    
    printf("\n=== 统计结果 ===\n");
    printf("最高分: %.2f\n", max_score);
    printf("最低分: %.2f\n", min_score);
    printf("平均分: %.2f\n", average);
    printf("及格人数: %d\n", pass_count);
    printf("不及格人数: %d\n", fail_count);  // 新增:输出不及格人数
    
    return 0;
}

练习 2:管理 10 个学生

修改程序,让它可以处理 10 个学生的成绩。

点击查看答案
c
#include <stdio.h>

int main() {
    // 将数组(Array)大小改为10
    float scores[10];
    float sum = 0;
    float average;
    float max_score;
    float min_score;
    int pass_count = 0;
    
    printf("=== 学生成绩管理系统 ===\n");
    printf("请输入10个学生的成绩:\n");
    // 循环次数改为10
    for (int i = 0; i < 10; i++) {
        printf("学生%d的成绩: ", i + 1);
        scanf("%f", &scores[i]);
        sum = sum + scores[i];
    }
    
    max_score = scores[0];
    min_score = scores[0];
    
    for (int i = 0; i < 10; i++) {
        if (scores[i] > max_score) max_score = scores[i];
        if (scores[i] < min_score) min_score = scores[i];
        if (scores[i] >= 60) pass_count++;
    }
    
    // 除数改为10
    average = sum / 10;
    
    printf("\n=== 统计结果 ===\n");
    printf("最高分: %.2f\n", max_score);
    printf("最低分: %.2f\n", min_score);
    printf("平均分: %.2f\n", average);
    printf("及格人数: %d\n", pass_count);
    
    return 0;
}

📌 小结

  • 你已经完成了第一个完整的 C 语言程序
  • 你学会了如何编译和运行代码:gcc 文件名.c -o 程序名./程序名
  • 你能够组合使用变量(Variable)、循环(Loop)、条件判断(Conditional)来解决实际问题

下一步

试着修改代码,添加你自己的功能!编程最好的学习方式就是不断尝试和修改。