m0_70029950 2022-10-13 14:08 采纳率: 79.2%
浏览 39
已结题

关于按照从小到大的顺序 输出的问题

题目:

img


样例输入:
5
7 58 55 88 74 95 98 86
3 90 65 78
2 70 58
5 17 62 69 83 32
9 51 66 42 98 13 85 87 97 60
样例输出:
17 62 69 83 32
70 58
51 66 42 98 13 85 87 97 60
90 65 78
58 55 88 74 95 98 86

问题:不知道如何按照平均成绩的大小输出输入的数据

package test;
import java.util.Arrays;
import java.util.Scanner;
public class Jiaoxue {
    public void main (String [] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][]  a =new int [n][];
        int[] sum = new int [n];
        int[] average = new int [n];
        for(int i = 0;i<n;i++) {
            for(int j=0 ;j<a[i][0];j++) {
                a[i][j] =sc.nextInt();
            }
        }
        for(int i=0;i<n;i++) {
            for(int j=1;j<a[i][0];j++)
            {
                sum[i]=sum[i]+a[i][j];
            }
            average[i]=sum[i]/a[i][0];
        }
    }
    
}


  • 写回答

1条回答 默认 最新

  • 什么派?乐天派 2022-10-13 17:02
    关注
        public static void main(String[] args) {
            //接收输入数据,并计算平均值
            Scanner sc = new Scanner(System.in);
            int teacherCount = sc.nextInt();
            int [][] arr = new int[teacherCount][];
            int [] avg = new int[teacherCount];
            for (int i = 0 ; i < teacherCount; i ++) {
                int studentCount = sc.nextInt();
                int [] scoreArr = new int[studentCount];
                int sum = 0;
                for (int j = 0; j < studentCount; j ++) {
                    int score = sc.nextInt();
                    scoreArr[j] = score;
                    sum+=score;
                }
                arr[i] = scoreArr;
                avg[i] = sum/studentCount;
            }
            System.out.println("成绩矩阵");
            for (int i = 0; i < teacherCount; i++) {
                int [] scoreArr = arr[i];
                for (int j = 0; j<scoreArr.length; j++) {
                    System.out.print(scoreArr[j] + " ");
                }
                System.out.println();
            }
            //将平均分数下标存储到数组
            int [] sort = new int[avg.length];
            for(int i = 0; i < sort.length; i++) {
                sort[i] = i;
            }
            //冒泡排序,排序的同时调整平均分下标
            for(int i = 1; i < avg.length ; i++){
                for(int j = 0; j < i ; j++) {
                    if (avg[j] > avg[i]) {
                        int tem = avg[i];
                        avg[i] = avg[j];
                        avg[j] = tem;
    
                        int _tem = sort[i];
                        sort[i] = sort[j];
                        sort[j] = _tem;
                    }
                }
    
            }
            System.out.println("输出");
            for (int i = 0; i < sort.length; i++) {
                int [] scoreArr = arr[sort[i]];
                for (int j = 0; j<scoreArr.length; j++) {
                    System.out.print(scoreArr[j] + " ");
                }
                System.out.println();
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么