姚郑507 2022-11-24 10:49 采纳率: 100%
浏览 6
已结题

java作业,本人编程一言难尽

1、请依次按如下要求完成程序
1)从键盘输入n个学生成绩,将其存放到数组a中,并输出数组a查看输入是否正确。其中n从键盘输入。
2)计算数组a中所有成绩的平均值,并输出。
3)对数组a中所有成绩进行从大到小排序。
4)将数组a中成绩大于平均值的存放到数组b中,并输出数组b中所有元素。



  • 写回答

4条回答 默认 最新

  • 游一游走一走 2022-11-24 11:26
    关注
    import java.util.*;
    
    public class Test03 {
        public static void main(String[] args) {
            final Scanner scanner = new Scanner(System.in);
            //读取学生总人数
            System.out.println("请输入学生总数:");
            final int number = scanner.nextInt();
            //读取每个学生的成绩
            final float[] scores = new float[number];
            int index = 0;
            while (index < number) {
                scores[index] = scanner.nextFloat();
                index++;
            }
            //打印每个学生的成绩
            for (float item : scores) {
                System.out.print(item);
                System.out.print(" ");
            }
            System.out.println();
            //计算成绩总和然后求平均值
            float sum = 0;
            for (float item : scores) {
                sum += item;
            }
            final float avg = sum / number;
            System.out.println("平均成绩:" + avg);
            //冒泡排序法将数组排序,从大到小
            float temp = 0;
            for (int i = 0; i < scores.length - 1; i++) {
                for (int j = 0; j < scores.length - i - 1; j++) {
                    if (scores[j] < scores[j + 1]) {
                        temp = scores[j];
                        scores[j] = scores[j + 1];
                        scores[j + 1] = temp;
                    }
                }
            }
            for (float item : scores) {
                System.out.print(item);
                System.out.print(" ");
            }
            System.out.println();
            //将超过平均数的成绩放入新数组,新数组的长度为总长度,但是有部分应该是未填充,只打印b_num位
            int b_num = 0;
            final float[] b = new float[number];
            for (float item : scores) {
                if (item > avg) {
                    b[b_num++] = item;
                }
            }
            for (int i = 0; i < b_num; i++) {
                System.out.print(b[i]);
                System.out.print(" ");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。