簡體   English   中英

查找並打印高數字數組方法Java

[英]Find and Print high number array method Java

我要嘗試執行的操作是搜索“ gradePsd”數組以找到最高成績,並且如果有兩個具有相同值的成績,請打印要管理的學生的姓名。

我遇到的問題是此方法正在獲取數組的第一個索引值並打印它,因為它在第一次通過時就是高值,如果第二個值大於第一個值,那么它也會打印,依此類推。

因此,我的問題是,如何打印出高年級的學生。

public static void hiMarkMethod(String[] NamePsd, int[] gradePsd)
{
    String nameRtn = "";
    int num = gradePsd[0];

    System.out.println ("\n\nThe Student(s) with Hightest Mark(s) are:");

    for (int  i = 0; i < gradePsd.length;  i++)
    {
        if (gradePsd[i] >= num)
        {
            num = gradePsd[i];
            nameRtn = NamePsd[i]; 
        }

        System.out.print(nameRtn + ", ");
    }
}

用-1初始化num並將System.out移出for循環。 但是您只能用您的代碼確定一名學生。 如果要存儲多個名稱,則需要nameRtn作為Collection

像這樣:

public static void hiMarkMethod(String[] NamePsd, int[] gradePsd) {
    Collection<String> namesRtn = new ArrayList<String>();
    int num = -1;

    for (int  i = 0; i < gradePsd.length;  i++) {
        if (gradePsd[i] > num) {
            num = gradePsd[i];
            namesRtn.clear();  // clear name list as we have a new highest grade
            namesRtn.add(NamePsd[i]);  // store name in list
        } else if (gradePsd[i] == num) {
            namesRtn.add(NamePsd[i]);  // if a second student has the same grade store it to the list
        }

    }
    System.out.println ("\n\nThe Student(s) with Hightest Mark(s) are: " + namesRtn);
}

首先找到最高編號,然后用該編號打印學生

public static void hiMarkMethod(String[] NamePsd, int[] gradePsd)
    {

    String nameRtn = "";
    int num = gradePsd[0];

     System.out.println ("\n\nThe Student(s) with Hightest Mark(s) are:");
    //find the highest number
    for (int  i = 0; i < gradePsd.length;  i++){
    if (gradePsd[i] >= num){
        num = gradePsd[i];
    }
    //print students with that number
    for (int  j = 0; j < NamePsd.length;  j++){
        if (gradePsd[j] == num)
        {
            nameRtn = NamePsd[j]; 
            System.out.print(nameRtn + ", "); 
        }
    }

可能的1000種解決方案之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM