weixin_41731967 2018-02-13 09:41 采纳率: 12.5%
浏览 1212
已结题

学生成绩管理系统二维数组排序问题:如果不对总分排序那么全部顺序就不会改变为什么

import java.util.*;
public class test5_18 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in=new Scanner(System.in);
    System.out.println("请输入学生的人数:");
    int pnum=in.nextInt();
    System.out.println("请输入课程数目:");
    int knum=in.nextInt();
    //存储学生姓名的数组
    String[] pname=new String[pnum];
    //存储课程的数组
    String[] kname=new String[knum];
    //二维数组总共pnum个学生,每个学生有knum门课程
    int[][]all=new int[pnum][knum];
    //总分数组
    int[] sum=new int[pnum];
    //平均分数组
    int[] avg=new int[pnum];
    //每个学生的分数信息字符串包括总分平均分
    String[] str=new String[pnum];
    for(int i=0;i<knum;i++){
        System.out.println("请输入第"+(i+1)+"门课程是什么:");
        kname[i]=in.next();
    }
    for(int i=0;i<pnum;i++){
        int t=0;
        String str1="";
        System.out.println("请输入第"+(i+1)+"个学生的姓名:");
        pname[i]=in.next();
        for(int j=0;j<knum;j++){
            System.out.println("请输入"+pname[i]+"的"+kname[j]+"的成绩:");
            all[i][j]=in.nextInt();
            t+=all[i][j];
            str1+=all[i][j]+"\t";
        }
        sum[i]=t;
        avg[i]=sum[i]/knum;
        str[i]=pname[i]+"\t"+str1+sum[i]+"\t"+avg[i];
    }
    for(int i=0;i<pname.length-1;i++){
        for(int j=0;j<pname.length-1;j++){
            if(sum[j]<sum[j+1]){
            /*如果不对总分排序那么全部顺序就不会改变为什么
                int t=sum[j+1];
                sum[j+1]=sum[j];
                sum[j]=t;   
                */
                //根据总分大小对字符串排序
                String t2=str[j+1]; 
                str[j+1]=str[j];
                str[j]=t2;
            }
        }
    }
    System.out.print("学生"+"\t");
    for(int i=0;i<kname.length;i++){
        System.out.print(kname[i]+"\t");
    }
    System.out.println("总分\t平均分\t排行榜");
    for(int i=0;i<pnum;i++){
        System.out.println(str[i]+"\t"+(i+1));
    }
}

}

  • 写回答

5条回答

  • azhouaa 2018-02-13 10:20
    关注

    是什么的全部顺序? 这个排序算法不对,可以去百度参考下冒泡排序。

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大