🧮 BC128 班级成绩输入输出

📘 题目描述

输入一个班级 5 个学生各 5 科成绩,输出 5 个学生各 5 科成绩及总分。

输入描述:

  • 共五行;
  • 每行输入一个学生的 5 科成绩(浮点数表示,范围 0.0~100.0),用空格分隔。

输出描述:

  • 共五行;
  • 按照输入顺序输出每个学生的 5 科成绩及总分;
  • 每个数保留 1 位小数,用空格分隔。

📥 示例输入

98.5 96.0 100 99 88
60.5 77 88.5 99 60
80 80.5 89 91 92
93 94 95.5 96 97.5
100 98 88.5 88 78.5

📤 示例输出

98.5 96.0 100.0 99.0 88.0 481.5
60.5 77.0 88.5 99.0 60.0 385.0
80.0 80.5 89.0 91.0 92.0 432.5
93.0 94.0 95.5 96.0 97.5 476.0
100.0 98.0 88.5 88.0 78.5 453.0


💡 解题思路

  1. 定义二维数组
    使用 float arr[5][5]; 存储 5 名学生的 5 科成绩。

  2. 输入成绩
    使用两层循环,外层控制学生(行),内层控制科目(列)。

  3. 计算总分
    每读取一个学生的 5 个成绩,累加求和得到总分。

  4. 输出结果
    按照题目要求输出每个成绩与总分,格式为 %.1f(保留 1 位小数)。


💻 完整代码

/*输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。*/
/*五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。*/
/*五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。*/

/*98.5 96.0 100 99 88
60.5 77 88.5 99 60
80 80.5 89 91 92
93 94 95.5 96 97.5
100 98 88.5 88 78.5*/

/*98.5 96.0 100.0 99.0 88.0 481.5
60.5 77.0 88.5 99.0 60.0 385.0
80.0 80.5 89.0 91.0 92.0 432.5
93.0 94.0 95.5 96.0 97.5 476.0
100.0 98.0 88.5 88.0 78.5 453.0*/

# include <stdio.h>
int main ()

{
    float arr[5][5];//二维数组
    int i = 0;
    for (i = 0; i < 5; i++) 
    {
        float sum = 0;//求数组中每一行的和
        int j = 0;
        for(j = 0; j < 5; j++)
        {
            //输入完一个数马上输出并且加到sum里面
            scanf("%f ",&arr[i][j]);
            printf("%.1f ",arr[i][j]);
            sum += arr[i][j];
        }
        printf("%.1f\n",sum);

    }
    return 0;

}

scanf 时不要在 %f 后加空格,否则会导致输入格式错误。

输出时每个数字之间必须有空格,总分单独输出在每行最后。

小数点统一保留一位(使用 %.1f)。

本题是典型的二维数组输入输出练习,掌握后可轻松应对:

成绩统计类题目;

表格数据求和;

基础矩阵遍历操作。

🌟 核心考点:二维数组 + 循环结构 + 格式化输出。

刷题网站
https://oj.chdacm.cn/