求大神告知代码错在哪里

来源:6-6 编程练习

慕姐6258285

2018-10-27 18:25

package p;

public class pric {


public static void main(String[] args) {

// TODO Auto-generated method stub

int[] scores={61,148, 23, 4, 74, 13,  20} ;

int i=0,j=0,max=scores[i],min=scores[j],sum=0;

float avg=0;

for(;i<6;i++,j++) {

sum=sum+scores[i];

if(scores[i]<scores[i+1]) {

max=scores[i+1];

if(scores[j]<scores[j+1]) {

min=scores[j];

}

}

}

avg=sum/7;

System.out.println("数组中的最大值"+max);

System.out.println("数组中的最小值"+min);

System.out.println("数组中的元素总和"+sum);

System.out.println("数组中的平均值"+avg);

}

}


写回答 关注

9回答

  • qq_慕盖茨6013752
    2019-03-04 22:18:37

    sum=sum+scores[i];


    if(scores[i]<scores[i+1]) {

    max=scores[i+1];

    按你这个循环来 1  ,3 ,   1  ,  2   取的是2 不是最大,这个只是两个相邻数比大小且最终就是取最后两位数里的最大值,同理最小值也是一样。

  • qq_慕后端7069001
    2019-02-28 12:21:37
    你的最大、最小值的比较逻辑弄错了,i和i+1比较,只会调换这两者的位置。例如第一次循环比较0和1的大小,
    第二次循环比较的是1和2的大小,只是相邻位置的两两换位,起不到把最大值冒泡出来的作用。还有就是
    你的if语句嵌套了if语句,这俩个比较应该在同一个层级,不存在嵌套关系。我修改后的代码如下:
    public class HelloWorld {
        public static void main(String[] args) {
    
                int[] scores={61,148, 23, 4, 74, 13,  20} ;
    
                int i=0,j=0,max=scores[0],min=scores[0],sum=0;
    
                float avg=0;
    
                for(;i<6;i++,j++) {
    
                    sum=sum+scores[i];
    
                    if(max>scores[i]) {
    
                        max=scores[i];}
    
                    if(min<scores[j]) {
    
                            min=scores[j];
    
                        }
    
                    }
            avg=sum/7;
    
            System.out.println("数组中的最大值"+max);
    
            System.out.println("数组中的最小值"+min);
    
            System.out.println("数组中的元素总和"+sum);
    
            System.out.println("数组中的平均值"+avg);
                }
    
            }


  • 慕沐5004016
    2019-01-15 14:47:47

    int[] nums = { 61, 23, 4, 74, 13, 148, 20 };

    int max = nums[0];

    int min = nums[0];

    double sum = 0;

    double avg = 0;


    for (int i = 0; i < nums.length; i++) {

    // 如果当前值大于max,则替换max的值

    if (nums[i] > max) {

    max = nums[i];

    }

    if (nums[i] < min) {

    min = nums[i];

    }

    sum += nums[i];

    }

    avg = sum / nums.length;


    System.out.println("最大值:" + max);

    System.out.println("最小值:" + min);

    System.out.println("求和:" + sum);

    System.out.println("平均:" + avg);


  • 丶年少
    2018-11-08 13:14:57

    看不懂你写的,冒泡不像冒泡,找最值又显得麻烦,代码繁琐

  • lenerthy
    2018-11-01 21:54:34

    这样子好像第7个没有比较,当i为6时就不会执行循环了

  • 乘舟于学海飘摇
    2018-10-27 20:27:36

    avg=sum/7;

    System.out.println("数组中的最大值"+max);

    System.out.println("数组中的最小值"+min);

    System.out.println("数组中的元素总和"+sum);

    System.out.println("数组中的平均值"+avg);

    不可以放在类外

    if(scores[i]<scores[i+1]) {

    max=scores[i+1];

    if(scores[j]<scores[j+1]) {

    min=scores[j];

    貌似是起不到排序作用的

  • 乘舟于学海飘摇
    2018-10-27 20:24:07

    public class pric{


        public static void main(String[] args) {

        // TODO Auto-generated method stub

            int[] scores={61,148, 23, 4, 74, 13,  20} ;

            int i=0,max=scores[0],min=scores[0],sum=0;

            float avg=0;

            for(;i<scores.length;i++) {

                sum=sum+scores[i];

                if(max<scores[i]) {

                    max=scores[i];

                }

                if(min>scores[i]) {

                    min=scores[i];

                }

            } 

        avg=sum/7;

        System.out.println("数组中的最大值"+max);

        System.out.println("数组中的最小值"+min);

        System.out.println("数组中的元素总和"+sum);

        System.out.println("数组中的平均值"+avg);

        }

       

    }


  • qq_椿兮如梦_rDFMY0
    2018-10-27 19:46:56

    我也是小白,试了不行不要打我哈,嘎嘎嘎嘎~~~~

  • qq_椿兮如梦_rDFMY0
    2018-10-27 19:45:27

    int max=scores[0],min=scores[0],sum=0;

    float avg=0;

    for(int i=0;i<6;i++) {

    sum=sum+scores[i];


    if(max<scores[i]) {

    max=scores[i];

     

    if(min>scores[i]) {

    min=scores[i];

    我认为应该是这样的,你试试

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题