这个程序的目的是创建一个数组[n = scan],插入n个数字并返回最大数字。 不幸的是,第二部分不起作用,我无法弄清楚为什么。得分变量适用于第一类及其公共,因此可以重复使用,对吗? 有帮助吗? 我有点像诺贝尔所以怜悯!
//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]);
}
}
答案 0 :(得分:1)
以这种方式将数组传递给静态方法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]);
}
}
修改强>
想要返回最大值,做一些小修改:
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];
}
答案 1 :(得分:0)
您需要更改分数范围,并将返回值添加到max或使方法无效。由于其范围,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);
}
}
答案 2 :(得分:-1)
可以这样工作
import java.util.*;
public class es2{
double[] score;
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();
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]);
}
}
答案 3 :(得分:-1)
`public class 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];
}
} `