猿猿study 2022-12-10 20:11 采纳率: 100%
浏览 24
已结题

数组问题,相同的方式不同的结果

第一个问题:为什么scores[0]=0,

第二个问题为什么当int max = 0;
int min = 100;就能够运行得出结果?
int max = scores[0];
int min = scores[0]就不行

第一次出错代码

import java.util.Scanner;

/*
有10个评委给参加编程比赛的某个选手的作品打分,从键盘输入10个评委的分数,并存储到一维数组中。
然后求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)
 */
public class ArrayExer7 {
    public static void main(String[] args) {
        //声明一个数组,长度为10,用来存储分数
        int[] scores = new int[10];

        Scanner input = new Scanner(System.in);
        int max = scores[0];
        int min = scores[0];//分数范围[0,100]
        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            System.out.print("请输入第" + (i+1) + "个评委的分数:");
            scores[i] = input.nextInt();
            sum += scores[i];
            if(scores[i] > max){
                max = scores[i];
            }
            if(scores[i] < min){
                min = scores[i];
            }
        }

        //另一个循环,遍历输出
        System.out.println("10个评委的分数如下:");
        for (int i = 0; i < scores.length; i++) {
            System.out.print(scores[i]+"  ");
        }
        System.out.println();
        System.out.println("最高分:" + max);
        System.out.println("最低分:" + min);
        System.out.println("平均分:" + (sum-max-min)/(scores.length-2));
    }
}



第二次正确代码:

```java
import java.util.Scanner;

/*
有10个评委给参加编程比赛的某个选手的作品打分,从键盘输入10个评委的分数,并存储到一维数组中。
然后求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)
 */
public class ArrayExer7 {
    public static void main(String[] args) {
        //声明一个数组,长度为10,用来存储分数
        int[] scores = new int[10];

        Scanner input = new Scanner(System.in);
        int max = 0;
        int min = 100;//分数范围[0,100]
        double sum = 0;
        for (int i = 0; i < scores.length; i++) {
            System.out.print("请输入第" + (i+1) + "个评委的分数:");
            scores[i] = input.nextInt();
            sum += scores[i];
            if(scores[i] > max){
                max = scores[i];
            }
            if(scores[i] < min){
                min = scores[i];
            }
        }

        //另一个循环,遍历输出
        System.out.println("10个评委的分数如下:");
        for (int i = 0; i < scores.length; i++) {
            System.out.print(scores[i]+"  ");
        }
        System.out.println();
        System.out.println("最高分:" + max);
        System.out.println("最低分:" + min);
        System.out.println("平均分:" + (sum-max-min)/(scores.length-2));
    }
}

第一次运行结果:
10个评委的分数如下:
12 21 58 66 558 55 58 25 86 8
最高分:558
最低分:0
平均分:48.625
第二次运行结果:
10个评委的分数如下:
5 86 86 86 87 98 87 89 84 54
最高分:98
最低分:5
平均分:82.375

  • 写回答

1条回答 默认 最新

  • Huazie 全栈领域优质创作者 2022-12-10 20:24
    关注
    1. Java 中 基本数据类型 int 定义的变量,默认初始值为 0, 包括数组中 int 型数据
    2. 最小值 肯定不能为0, 因为 你就是要跟这个最小值进行比较的,你要么 选其中 的 一个输入数据 最为最小值; 如果以最小值作为比较,0不就是最小的了嘛
    for (int i = 0; i < scores.length; i++) {
        System.out.print("请输入第" + (i+1) + "个评委的分数:");
        scores[i] = input.nextInt();
        sum += scores[i];
    
        if (i == 0) {
            max = scores[i];
            min = scores[i];
        }
    
        if(scores[i] > max){
            max = scores[i];
        }
        if(scores[i] < min){
            min = scores[i];
        }
    }
    

    如有帮助,欢迎点赞+采纳哈!

    在这里插入图片描述

    本人的开源项目,欢迎star支持下!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据