Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 在方法2和3中返回数组中的多个项_Java_Arrays - Fatal编程技术网

Java 在方法2和3中返回数组中的多个项

Java 在方法2和3中返回数组中的多个项,java,arrays,Java,Arrays,我正在努力使用printHighest和printLowest方法,我需要它来返回学生分数、姓名和ID,但我想不出我唯一能让它工作的方法是只使用分数,在大多数情况下,其余的程序工作正常,我只是在与代码的这一部分作斗争 import java.util.*; public class FinalprojectV2 { public static void main(String args[]) { Scanner console = new Scanner(Sy

我正在努力使用
printHighest
printLowest
方法,我需要它来返回
学生分数
姓名
ID
,但我想不出我唯一能让它工作的方法是只使用分数,在大多数情况下,其余的程序工作正常,我只是在与代码的这一部分作斗争

import java.util.*;

public class FinalprojectV2
{

    public static void main(String args[])
    {
        Scanner console = new Scanner(System.in);
        int[] studentID = new int [5];
        String[] studentName = new String [5];
        int [] studentScore = new int [5];

        for (int i = 0; i < 5; i++)
        { 
            System.out.println("Student Number " + (i+1) + "");

            System.out.println("Student ID Number: ");
            studentID [i] = console.nextInt();

            System.out.println(" Student Name: " + console.nextLine()+"");
            studentName [i] = console.nextLine();

            System.out.println("Grade: ");
            studentScore [i] = console.nextInt();
        }

        printRoaster(studentID, studentName, studentScore);

        int max = printLowest(studentScore);
        System.out.println("Highest score is: "+ max);

        int min = printHighest(studentScore);
        System.out.println("Lowest score is: "+ min);
    }

    public static void printRoaster(int[] studentID, String []studentName, int [] studentScore)
    {
        for (int i = 0; i < 5; i++)
        { 
            java.util.Arrays.sort(studentID);
            java.util.Arrays.sort(studentName);
            java.util.Arrays.sort(studentScore);
        }

        for(int i=0;i<5;i++)
        {
            System.out.println(studentID[i] + " " + studentName [i] + " " + studentScore [i]  + " ");
        }
    }

    public static int printLowest(int[] inputArray)
    { 
        int maxValue = inputArray[0]; 

        for(int i=1;i < inputArray.length;i++){ 
            if(inputArray[i] > maxValue){ 
                maxValue = inputArray[i]; 
            }
        } 

        return maxValue; 
    }

    public static int printHighest(int[] inputArray){ 
        int minValue = inputArray[0];

        for(int i=1;i<inputArray.length;i++){ 
            if(inputArray[i] < minValue){ 
                minValue = inputArray[i];
            }
        } 

        return minValue; 
    } 
}
import java.util.*;
公共类最终项目2
{
公共静态void main(字符串参数[])
{
扫描仪控制台=新扫描仪(System.in);
int[]studentID=新int[5];
String[]studentName=新字符串[5];
int[]学生分数=新的int[5];
对于(int i=0;i<5;i++)
{ 
System.out.println(“学生号”+(i+1)+”);
System.out.println(“学生ID号:”);
studentID[i]=console.nextInt();
System.out.println(“学生名:“+console.nextLine()+”);
studentName[i]=console.nextLine();
系统输出打印项次(“等级:”);
studentScore[i]=console.nextInt();
}
printRoaster(学生ID、学生姓名、学生分数);
int max=打印最低(学生分数);
System.out.println(“最高分数为:“+max”);
int min=最高打印分数(学生分数);
System.out.println(“最低分数为:“+min”);
}
公共静态void打印程序(int[]studentID,String[]studentName,int[]studentScore)
{
对于(int i=0;i<5;i++)
{ 
java.util.Arrays.sort(studentID);
java.util.Arrays.sort(studentName);
java.util.Arrays.sort(studentScore);
}
对于(int i=0;i maxValue){
最大值=输入阵列[i];
}
} 
返回最大值;
}
公共静态int printHighest(int[]inputArray){
int minValue=inputArray[0];

对于(inti=1;i更好的解决方案是创建一个带有id、名称和分数的学生类

从printHighest和printLowest方法返回学生类的适当对象

希望你能理解

class Student {
    int studentID;

    String studentName;

     int studentScore ;
........
}
在main方法中,创建

Student[] students = new Student [5];
import java.util.*;
导入静态java.lang.Integer.MIN_值;
公共类最终项目2
{
公共静态void main(字符串参数[])
{
扫描仪控制台=新扫描仪(System.in);
int[]studentID=新int[5];
String[]studentName=新字符串[5];
int[]学生分数=新的int[5];
对于(int i=0;i<5;i++)
{
System.out.println(“学生号”+(i+1)+”);
System.out.println(“学生ID号:”);
studentID[i]=console.nextInt();
System.out.println(“学生名:“+console.nextLine()+”);
studentName[i]=console.nextLine();
系统输出打印项次(“等级:”);
studentScore[i]=console.nextInt();
}
printRoaster(学生ID、学生姓名、学生分数);
//int max=打印最低(学生分数);
打印最低(学生分数,学生ID);
//System.out.println(“最高分数为:”+);
int min=最高打印分数(学生分数);
System.out.println(“最低分数为:“+min”);
}
公共静态void打印程序(int[]studentID,String[]studentName,int[]
学生成绩)
{
对于(int i=0;i<5;i++)
{
java.util.Arrays.sort(studentID);
java.util.Arrays.sort(studentName);
java.util.Arrays.sort(studentScore);
}
对于(int i=0;i maxValue){
pos=i;
最大值=输入阵列[i];
}
}
打印(最大值,id[pos]);
}
公共静态无效打印(整数分数,整数id){
System.out.println(“最高分数为:“+score+”学生ID为:“+ID”);
}
公共静态int printHighest(int[]inputArray){
int minValue=inputArray[0];

对于(int i=1;iYou可以返回最高分数的索引,然后使用该索引检索具有该分数的学生的id和姓名。您可以提供一个示例输入和示例输出吗?您可以给我一个示例,说明如何在代码中实现这一点吗?这是一个解决方案,它只在代码中引入了一些更改。T他正确且良好的做法是像@aj那样写作。
import java.util.*;

import static java.lang.Integer.MIN_VALUE;

public class FinalprojectV2

{

    public static void main(String args[])

    {

        Scanner console = new Scanner(System.in);

        int[] studentID = new int [5];

        String[] studentName = new String [5];

        int [] studentScore = new int [5];

        for (int i = 0; i < 5; i++)

        {

            System.out.println("Student Number " + (i+1) + "");

            System.out.println("Student ID Number: ");

            studentID [i] = console.nextInt();

            System.out.println(" Student Name: " + console.nextLine()+"");

            studentName [i] = console.nextLine();

            System.out.println("Grade: ");

            studentScore [i] = console.nextInt();

        }

        printRoaster(studentID, studentName, studentScore);

//        int max = printLowest(studentScore);

        printLowest(studentScore,studentID);

//        System.out.println("Highest score is: "+ );

        int min = printHighest(studentScore);

        System.out.println("Lowest score is: "+ min);

    }

    public static void printRoaster(int[] studentID, String []studentName, int []

            studentScore)

    {

        for (int i = 0; i < 5; i++)

        {

            java.util.Arrays.sort(studentID);

            java.util.Arrays.sort(studentName);

            java.util.Arrays.sort(studentScore);

        }


        for(int i=0;i<5;i++)

        {

            System.out.println(studentID[i] + " " + studentName [i] + " " + studentScore [i]

                    + " ");

        }

    }

    public static void printLowest(int[] inputArray, int[] id)

    {
        int pos = MIN_VALUE;
        int maxValue = inputArray[0];

        for(int i=1;i < inputArray.length;i++){

            if(inputArray[i] > maxValue){

                pos = i;
                maxValue = inputArray[i];

            }

        }

        print(maxValue,id[pos]);

    }

    public static void print(int score, int id){
        System.out.println("Highest score is: "+ score +" student ID is: "+id);
    }

    public static int printHighest(int[] inputArray){

        int minValue = inputArray[0];

        for(int i=1;i<inputArray.length;i++){

            if(inputArray[i] < minValue){

                minValue = inputArray[i];

            }

        }

        return minValue;

    }

}