java - 为什么我在这里总是得到预期的 .class ?常见问题都不是罪魁祸首

标签 java arrays methods

在我能找到的所有其他情况下,这是由于代码不在方法中或括号不正确,但是我已经检查了所有这些。我的代码是这样的;

import java.util.*; 
public class averages {
   public static void main(String[] args) 
   {
      //initializing
      double mean = 0;
      double deviation = 0;
      int i = 0;
      double dataset = new double[10];
      double sum = 0;
      double subdev = 0;
      double subsum = 0;
      double dev = 0;

      //getting the numbers
      for (i = 0; i <= 9 ; i++)
      {
         Scanner input = new Scanner(System.in);
         System.out.println("Enter a number");
         dataset[i] = input.nextDouble();
      }

      //calling the function to get 
      avgarray(dataset[]);
      System.out.println("Average is " + mean);
      devequasion(dataset[]);
      System.out.println("Deviation is " + subdev);
   }
   public static double avgarray(double[] arraydata)
   {
      sum = 0;
      for (i = 0; i <= 9 ; i++)
      {
         sum += arraydata[i];
      }
      mean = sum / 10;
      return mean;
   }

   public static double devequasion(double[] devdata)
   {
      subsum = 0;
      for (i = 0; i <= 9 ; i++)
      {
         subsum += devdata[i]*devdata[i];
      }
      dev = math.sqrt((sum - avgarray(devdata[]))/ 9.0);
      return dev;
   }
}

一切看起来都正确,但错误不会消失。

最佳答案

你有很多问题,例如:

  • 您对数据集的定义不正确。您创建一个 double 组,然后尝试将其分配给单个 double 值。
  • 您传递dataset[]而不是dataset
  • avgarraydevequasion 中有已使用但未声明的变量(meansumsubsumidev)。事实上,这些在 main 中声明是不相关的。
  • 此外,因为它们仅在方法中使用,所以它们在main中是不必要的,当然,除了i)。
  • 您不导入 java.util.Scanner 用于数据输入。
  • 数学包是 Math,大写的 M

如果您使用像 Eclipse 这样的 IDE,您会发现查看和修复这些问题要容易得多。对于初学者来说,这是${DEITY}-send

如果必须( headless 构建、兼容性等),请务必将代码注入(inject) javac 作为最后一步,但使用 IDE 进行初始开发 ,您会发现速度快得多

这是一个纠正了所有语法问题的版本,并进行了一些其他细微的调整,例如删除了不必要的变量:

import java.util.Scanner;

public class testprog {
    public static void main (String[] args) {
        double[] dataset = new double[10];

        for (int i = 0; i <= 9 ; i++) {
            Scanner input = new Scanner (System.in);
            System.out.println ("Enter a number: ");
            dataset[i] = input.nextDouble();
        }

        System.out.println ("Average is " + avgarray (dataset));
        System.out.println ("Deviation is " + devequasion (dataset));
    }

    public static double avgarray (double[] arraydata) {
        double sum = 0;
        for (int i = 0; i <= 9 ; i++)
            sum += arraydata[i];
        return sum / 10;
    }

    public static double devequasion (double[] devdata) {
        double subsum = 0;
        for (int i = 0; i <= 9 ; i++)
            subsum += devdata[i] * devdata[i];
        return Math.sqrt ((subsum - avgarray (devdata)) / 9.0);
    }
}

如果是家庭作业,请不要逐字使用此内容,如果您认为您的教育 worker 没有积极在网络上搜索抄袭行为,那就太愚蠢了。

关于java - 为什么我在这里总是得到预期的 .class ?常见问题都不是罪魁祸首,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989582/

相关文章:

php - Array_rand() for while 循环没有返回值?

java - 如何在我的类中设置要调用到方法中的值“Present Value”

java - Java中如何快速判断一个方法是否被重写

java - 从 GC 角度来看 Java 流的影响或通过 GC 处理短期对象

java - 迁移到 android studio 后,Android 主题未应用于 API v19(但应用于 API v21)

java - Apache Camel 脚本问题

java - CompletableFuture.supplyAsync 与新的 CompletableFuture()

C: 两个不同的数组指向同一个结构

javascript - 如何在没有 .reverse() 的情况下以 16 个或更少的字符反转 JavaScript 中的数组?

c# - 从不同线程调用方法