Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
经典java作业:数组找不到变量_Java_Arrays_Sorting - Fatal编程技术网

经典java作业:数组找不到变量

经典java作业:数组找不到变量,java,arrays,sorting,Java,Arrays,Sorting,该程序的目的是创建一个数组[n=scan],插入n个数字并返回最大数字。 不幸的是,第二部分不起作用,我不知道为什么。score变量在第一类及其公共类中工作,因此可以重用它,对吗? 有什么帮助吗? 我有点不省人事,所以发发发慈悲吧 //script per creare array [n] ins da tastiera e far scrivere i suoi elementi import java.util.*; public class es2{ public static

该程序的目的是创建一个数组[n=scan],插入n个数字并返回最大数字。 不幸的是,第二部分不起作用,我不知道为什么。score变量在第一类及其公共类中工作,因此可以重用它,对吗? 有什么帮助吗? 我有点不省人事,所以发发发慈悲吧

 //script per creare array [n] ins da tastiera e far scrivere i suoi elementi 
import java.util.*;
public class es2{
    public static void main(String[] args){
        // Read size of array and declare array
        System.out.println("Enter number of elements:");
        Scanner scan = new Scanner(System.in);
        int size = scan.nextInt();
        double[] score = new double[size];
        // read elements and store in array
        for (int k = 0; k < score.length; k++)
        {
            System.out.println("Enter element " + k);
            score[k] = scan.nextDouble();
        }
    }
    public int max(){
        //create var max
        int max = 0;
        for (int i = 1; i < score.length; i++)
        {if (score[i] > score[max])
                max = i;
        }   
                System.out.println("il max e' "+score[max]);

    }
}
//每个creare数组的脚本[n]in da tastiera e far scrivere i suoi elementi
导入java.util.*;
公共类es2{
公共静态void main(字符串[]args){
//读取数组的大小并声明数组
System.out.println(“输入元素数:”);
扫描仪扫描=新扫描仪(System.in);
int size=scan.nextInt();
双[]分=新双[尺寸];
//读取元素并存储在数组中
for(int k=0;k分数[max])
max=i;
}   
System.out.println(“il max e'”+分数[max]);
}
}

`公共类ArrayMax{

public static void main(String[] args){
    // Read size of array and declare array
    System.out.println("Enter number of elements:");
    Scanner scan = new Scanner(System.in);
    int size = scan.nextInt();
    double[] score = new double[size];
    // read elements and store in array
    for (int k = 0; k < score.length; k++)
    {
        System.out.println("Enter element " + k);
        score[k] = scan.nextDouble();
    }
    max(score);
}

public static int max(double[] score) {
    // create var max
    int max = 0;
    for (int i = 1; i < score.length; i++) {
        if (score[i] > score[max])
            max = i;
    }
    System.out.println("max element is' " + score[max]);
    return (int) score[max];
}
publicstaticvoidmain(字符串[]args){
//读取数组的大小并声明数组
System.out.println(“输入元素数:”);
扫描仪扫描=新扫描仪(System.in);
int size=scan.nextInt();
双[]分=新双[尺寸];
//读取元素并存储在数组中
for(int k=0;k分数[max])
max=i;
}
System.out.println(“最大元素为“”)+分数[max]);
返回(整数)分数[最大值];
}
}
`

您需要更改分数的范围,并将返回值添加到max或使方法无效。由于变量“score”的范围,max方法无法查看该变量

import java.util.*;

public class es2{

    private double[] score;
    private Scanner scan = new Scanner(System.in);

    public static void main(String[] args){
        es2 main = new es2();
        main.load_values();
        main.max();
    }

  public void load_values(){
        System.out.println("Enter number of elements:");
        int size = scan.nextInt();
        score = new double[size];
        // read elements and store in array
        for (int k = 0; k < score.length; k++)
        {
            System.out.println("Enter element " + k);
            score[k] = scan.nextDouble();
        }
  }

    public void max(){
        //create var max
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < score.length; i++)
        {
          if (score[i] > max)
              max = score[i];
        }   
        System.out.println("il max e' "+max);

    }
}
import java.util.*;
公共类es2{
私人双[]分;
专用扫描仪扫描=新扫描仪(System.in);
公共静态void main(字符串[]args){
es2 main=新的es2();
main.load_值();
main.max();
}
公共无效荷载_值(){
System.out.println(“输入元素数:”);
int size=scan.nextInt();
分数=新双[尺寸];
//读取元素并存储在数组中
for(int k=0;k最大值)
max=分数[i];
}   
System.out.println(“il max e'”+max);
}
}

以静态方法
max()
传递数组,方法如下:

public class es2 {

  public static void main(String[] args){

    System.out.println("Enter number of elements:");
    Scanner scan = new Scanner(System.in);
    int size = scan.nextInt();
    double score[] = new double[size];
    for (int k = 0; k < score.length; k++)
    {
        System.out.println("Enter element " + k);
        score[k] = scan.nextDouble();
    }
    max(score);
  }

  public static void max(double[] score){

    int max = 0;
    for (int i = 1; i < score.length; i++){
        if (score[i] > score[max])
            max = i;
    }   
    System.out.println("il max e' "+score[max]);

   }
}
公共类es2{
公共静态void main(字符串[]args){
System.out.println(“输入元素数:”);
扫描仪扫描=新扫描仪(System.in);
int size=scan.nextInt();
双倍分数[]=新的双倍[尺码];
for(int k=0;k分数[max])
max=i;
}   
System.out.println(“il max e'”+分数[max]);
}
}
编辑

要返回最大值,请执行小修改:

public static int max(double[] score){

    int max = 0;
    for (int i = 1; i < score.length; i++){
        if (score[i] > score[max])
            max = i;
    }   
    System.out.println("il max e' "+score[max]);
    return (int)score[max];  
}
public static int max(双[]分){
int max=0;
for(int i=1;i分数[max])
max=i;
}   
System.out.println(“il max e'”+分数[max]);
返回(整数)分数[最大值];
}

在哪里调用
max()
方法?分数是一个局部变量。请参阅:或“score变量在第一类及其公共类中工作,因此可以重用”-嗯?它在同一个类中,但方法不同。这意味着它不是
公共的
它是方法的局部问题看起来像是范围问题。“score”在主函数中是可访问的,但在max中不是主函数中声明的。尝试将其传递到max或在main之外声明公共double[]分数。未正确计算array@Ryan你能解释一下为什么吗?如果数组是负数,它将打印0,而0不是数组中最大的数字。你说数组是负数是什么意思?它包含的值感谢你的回复。我很担心你的最后一句话,因为从教授的幻灯片上看,这个“最大”方法应该也适用于负数!谢谢你的回复!这个程序有效!我可以问你为什么写“返回(int)分数[max];”?因为程序已经打印了最大值,即使没有最后一句话。