学生成绩排名

package S2;

import java.util.Scanner;

public class Student {

/**
 * @param args
 */
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入学生的人数");
    int renshu = sc.nextInt();// 存储学生的人数
    System.out.println("请输入课程的数目");
    int courseNum = sc.nextInt();// 存储课程的数目
    String[] name = new String[renshu];// 声明一个String数组用来存储学生姓名
    String[] course = new String[courseNum];// 声明一个String数组用来存储课程名称
    double[][] number = new double[renshu][courseNum];
    int[] sum = new int[renshu];
    int[] avg = new int[renshu];
    String[] str = new String[renshu];


    // 用来循环存储课程的名称
    for (int i = 0; i < course.length; i++) {
        System.out.println("请输入第" + (i + 1) + "门课程的名字");
        course[i] = sc.next();
    }

    // 用来录入学生的各科成绩
    for (int i = 0; i < renshu; i++) {
        int S = 0;// 声明一个S,初始值为0
        System.out.println("请输入学生的姓名:");
        name[i] = sc.next();// 用来存储学生姓名
        String str11 = "";
        for (int j = 0; j < courseNum; j++) {
            System.out.println("请输入学生" + name[i] + course[j] + "的成绩");
            number[i][j] = sc.nextDouble();// 用来储存特定学生的特定成绩
            S += number[i][j];
            str11 += number[i][j] + "\t";
        }
        sum[i] = S;// 求出此同学的总分数组
        avg[i] = S / courseNum;// 求出此同学的平均分存入分数组
        str[i] = name[i] + "\t" + str11 + sum[i] + "\t" + avg[i];
    }
    for (int i = 0; i < sum.length - 1; i++) {
        for (int j = 0; j < sum.length - 1; j++) {
            if (sum[j] < sum[j + 1]) {
                int t1 = sum[j];
                String t2 = str[j];
                sum[j] = sum[j + 1];
                str[j] = str[j + 1];
                sum[j + 1] = t1;
                str[j + 1] = t2;
            }

        }

    }
    // 效果输出
    System.out.print("学生");
    for (int i = 0; i < course.length; i++) {
        System.out.print("\t" + course[i]);// 循环输出每个科目的名称

    }
    System.out.print("\t总分\t平均分\t排行榜");
    System.out.println();
    for (int i = 0; i < renshu; i++) {
        System.out.println(str[i] + "\t第" + (i + 1) + "名");// 起换行的作用
    }

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值