编程初学者入门训练-班级成绩输入输出

题目描述

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

输入描述

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

输出描述

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

示例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

代码实现

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        double[][] grade = new double[5][6];
        //读入5个学生的5科成绩
        for(int i=0;i<5;i++){    //第几个学生
            double totalgrade = 0;
            String[] arr = in.readLine().split(" ");
            for(int j=0;j<5;j++){
                grade[i][j] = Double.valueOf(arr[j]);
                totalgrade += grade[i][j];
            }
            grade[i][5] = totalgrade;//每个学生的总分
        }
        //输出成绩和总分
        for(int i=0;i<5;i++) {
        	for(int j=0;j<6;j++) {
        		System.out.print(grade[i][j]+" ");
        	}
            System.out.println();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是具体的代码实现: ```c #include <stdio.h> // 定义常量 #define ROW 3 #define COL 5 // 函数声明 void input_scores(int *ptr); void find_best_score(int *ptr, int *row, int *col); void print_result(int *ptr, int row, int col); int main() { int scores[ROW][COL]; int row, col; // 输入成绩 input_scores(&scores[0][0]); // 查找最好成绩 find_best_score(&scores[0][0], &row, &col); // 输出结果 print_result(&scores[0][0], row, col); return 0; } // 输入成绩 void input_scores(int *ptr) { printf("请依次输入3名同学的5门课程成绩:\n"); for (int i = 0; i < ROW; i++) { printf("请输入第%d名同学的成绩:", i + 1); for (int j = 0; j < COL; j++) { scanf("%d", ptr++); } } } // 查找最好成绩 void find_best_score(int *ptr, int *row, int *col) { int max_score = *ptr; *row = 0; *col = 0; for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { if (*(ptr + i * COL + j) > max_score) { max_score = *(ptr + i * COL + j); *row = i; *col = j; } } } } // 输出结果 void print_result(int *ptr, int row, int col) { printf("最好成绩为:%d,所在的行和列分别为:%d行%d列\n", *(ptr + row * COL + col), row + 1, col + 1); } ``` 代码思路: 1. 定义二维数组 `scores` 来存储 3 名同学 5 门课程的成绩; 2. 通过指针参数的方式,将二维数组在主函数中传递给子函数; 3. 在 `input_scores` 函数中,利用两个嵌套的循环,分别输入每个同学的 5 门课程成绩; 4. 在 `find_best_score` 函数中,先将第一个成绩设为最好成绩,然后遍历整个二维数组,找到最好成绩以及该成绩所在的行和列; 5. 在 `print_result` 函数中,输出最好成绩以及所在的行和列。 注意事项: 1. 在使用指针访问二维数组元素时,要根据数组的行数和列数进行计算,即 `*(ptr + i * COL + j)`; 2. 在输出最好成绩所在的行和列时,由于数组下标从 0 开始,所以需要将行和列分别加 1。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值