gpt4 book ai didi

java - 努力在java中计算平均值,最小值和最大值

转载 作者:行者123 更新时间:2023-12-02 06:28:31 26 4
gpt4 key购买 nike

我目前正在努力计算编码中的平均值、最小值和最大值。我收到很多错误,并且不确定我做错了什么。抱歉,如果我没有提供足够的信息,我会根据需要更新我的帖子。另外,如果您能解释一下为什么使用该代码,以便我能够理解,我将不胜感激。谢谢。

编辑 - 我想要它做的是,当用户输入一组数字并完成输入数字时,我希望它在直方图之后显示用户输入的数字的平均值以及最大值和最小值。我假设我必须使用我的计数变量和我的 num 变量,但仍在努力实现它。

我收到的错误显示在下面的代码行中。

import java.util.Scanner;

public class Histogram1 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

int[] array = new int[5000];
int num = 0;
int count = 0;
int total = 1;
int max = 0;
int min = 0;

System.out.println ("Enter students marks in the range 0 to 100\n");

loop: for (count = 0; count <= total; count++)
{
System.out.println ("Enter a number:");
num = scan.nextInt();
if (num < 0 || num > 100)
{
break loop;
}
array[count] = num;
total = count+1;
}
System.out.println ("How many times a number between 0-100 occur.");

String[] asterisk = {"0- 29 | ", "30- 39 | ","40- 69 | ", "70- 100 | "}; //4 strings

for (count = 1; count <= total; count++)
{
num=array[count];
if (num >=0 && num <=29) asterisk [0] +="*";
else if (num>29 && num <=39) asterisk[1] +="*";
else if (num>39 && num <=69) asterisk[2] +="*";
else if (num>69 && num <=100) asterisk[3] +="*";
}
for (count =0;count < 4;count++)
System.out.println(asterisk[count]);
System.out.println("The total amount of students is " + total);

**int cannot be dereferenced** for (int i = 0; i < count.length; i++) {
**array required, but int found** num += count[i];
**array required, but int found** if (min > num[i]) {
**array required, but int found** min = num[i];
}
**array required, but int found** if (max < num[i]) {
**array required, but int found** max = num[i];
}
}
**int cannot be dereferenced** double average = (double) num / count.length;
System.out.printf(" min: " + min);
System.out.printf("%n max: " + max);
System.out.printf("%naverage: %.1f", average);
}
}

最佳答案

  • 如果您有一个数组,则通常通过首先将初始最小值设置为已知的最大值“无穷大”(在本例中为 100)来计算最小值。下一步是迭代您的值集并检查某个值是否低于当前最小值,如果是,则将最小值设置为该值。

    int min = 100;

    for (int i = 0; i < total; i++) {
    if (array[i] < min) {
    min = array[i];
    }
    }
  • 对于最大值,则执行相反的操作,将初始最大值设置为 0 或负“无穷大”,并检查数组中的值是否大于当前最大值。

  • 对于平均值,将所有值相加,然后将结果除以数组中的元素总数。

    int sum = 0;

    for (int i = 0; i < total; i++) {
    sum += array[i];
    }

    double avg = (double) (sum) / total;

在 Java 中,正无穷作为整数类型表示为 Integer.MAX_VALUE 和负无穷: Integer.MIN_VALUE

关于java - 努力在java中计算平均值,最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com