经典java作业:数组找不到变量
该程序的目的是创建一个数组[n=scan],插入n个数字并返回最大数字。 不幸的是,第二部分不起作用,我不知道为什么。score变量在第一类及其公共类中工作,因此可以重用它,对吗? 有什么帮助吗? 我有点不省人事,所以发发发慈悲吧经典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
//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];”?因为程序已经打印了最大值,即使没有最后一句话。