Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 - Fatal编程技术网

Java 数组不返回值

Java 数组不返回值,java,arrays,Java,Arrays,大家好,第一次海报和java初学者 问题:尝试使用gradeDistn方法返回学生分数的计数值 gradeDistn方法将接受一个字符数组,这些字符是为标记数组指定的等级,如grades方法返回的等级。gradeDistn方法将返回一个包含等级分布的整数值数组,即每个等级在指定等级中出现的次数。用于等级的字符是固定的。返回的数组应按从A级到F级的顺序提供分布 输出 敏是24岁 马克斯97岁了 射程是74 平均值是62 中位数是62 模式是53 FFFFFFFFFFFFFFFFFFFFFFFFFF

大家好,第一次海报和java初学者

问题:尝试使用gradeDistn方法返回学生分数的计数值

gradeDistn方法将接受一个字符数组,这些字符是为标记数组指定的等级,如grades方法返回的等级。gradeDistn方法将返回一个包含等级分布的整数值数组,即每个等级在指定等级中出现的次数。用于等级的字符是固定的。返回的数组应按从A级到F级的顺序提供分布

输出

敏是24岁

马克斯97岁了

射程是74

平均值是62

中位数是62

模式是53

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEEE DDDDDDDDDD CCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

标记的分布

A:1

B:1

C:1

D:1

E:1

F:1

import java.util.Random;
导入java.lang.Math;
导入java.lang.reflect.Array;
导入java.util.array;
公开课分数{
专用静态最终整数标记=125;
私人静态最终双平均值=65.0;
专用静态最终双标准=15.0;
/**
*返回近似正态分布的NMARK整数标记数组,
*具有规定的平均值(平均值)和标准偏差(标准偏差),
*并删除0..100以外的值。
*@返回标记数组。
*/
公共静态int[]getMarks(){
随机随机数=新随机数(1001L);
整数标记;
int[]标记=新的int[n标记];
int n=0;
while(n=0&&mark=90)
convertedGrades[i]=标记[0];
否则,如果(等级[i]>=75)
convertedGrades[i]=标记[1];
否则,如果(等级[i]>=60)
convertedGrades[i]=标记[2];
否则,如果(等级[i]>=50)
convertedGrades[i]=标记[3];
否则,如果(等级[i]>=45)
convertedGrades[i]=标记[4];
其他的
convertedGrades[i]=标记[5];
}
返回转换等级;
}
//等级分布法
公共静态int[]gradeDistn(char[]arr){
char[]characterArray=新字符[arr.length];
int A=0,B=0,C=0,D=0,E=0,F=0;
for(字符i=0;i
}

不将
标记
A
B
等链接。 当您增加
时,A
标记保持不变

我建议您在所有计算完成后构建
标记
。简单地说,
int[]标记={A,B,C,D,E,F}就在返回之前


PS:
if(characterArray[i]='B')A++
对我来说是错误的。

既然@talex解释了你的代码有什么问题,我可以给你指出一个更好的解决方案:因为你的
分数
是字母序列,它们可以与长度
'F'-'a'+1
的数组相匹配(介于
'a'
'F'
之间的字母数)。匹配函数将尽可能简单:使用
grade-'A'
作为数组索引,使用
i+'A'
作为恢复函数。

请提供一个而不是片段,并将输出作为文本而不是屏幕截图。(毕竟,这只是文本…)你可能还想问问自己,你期望什么
grades[i]=i要做的事。。。你忽略了
n
参数,只是想知道它有多大。(老实说,
getGrades
中为什么有一个
grades
数组…)感谢这些快速回复的家伙,我真的很惊讶这里的社区是多么的有帮助和快速。我已尝试修复返回数组标记[],但对于输出上的所有值,仍然得到1的输出。
import java.util.Random;
import java.lang.Math;
import java.lang.reflect.Array;
import java.util.Arrays;



    public class Marks {

private static final int NMARKS = 125;
private static final double mean = 65.0;
private static final double std = 15.0;

/**
 * Returns an array of NMARKS integer marks approximately normally distributed,
 * with specified mean (mean) and standard deviation (std),
 * and with values outside 0..100 removed.
 * @return the array of marks.
 */
public static int[] getMarks() {
    Random rand = new Random(1001L);
    int mark;
    int[] theMarks = new int[NMARKS];
    int n = 0;
    while (n < NMARKS) {
        mark = (int) Math.round(std*rand.nextGaussian() + mean);
        if (mark >= 0 && mark <= 100)
            theMarks[n++] = mark;
    }
    return theMarks;
}

/**
 * Test code
 * @param args not used
 */
public static void main(String[] args) {

    int[] testMarks = getMarks();


    int[] sortedMarks = arraySort (testMarks);
    System.out.println("Unsorted marks\n");
    for (int n = 0; n < testMarks.length; n++) {
        System.out.print(testMarks[n] + " ");
        if (n % 10 == 9)
            System.out.println();
    }

    System.out.println("\n\nSorted marks\n");

    for (int n = 0; n < sortedMarks.length; n++) {
        System.out.print(sortedMarks[n] + " ");
        if (n % 10 == 9)
            System.out.println();

    }
    System.out.println("\n\n");

    //Print Minimum
    int minimum = getMin(getMarks());
    System.out.println("Min is " + minimum);

    //Print Maximum
    int maximum = getMax(getMarks());
    System.out.println("Max is " + maximum);

    //Print Range
    int range = (getRange(maximum, minimum));
    System.out.println("Range is " + range);

    //Print Mean
    int mean = getMean(getMarks());
    System.out.println("Mean is " + mean);

    //Print Median
    int median = getMedian(sortedMarks);
    System.out.println("Median is " + median);

    //Print Mode
    int mode = getMode(sortedMarks);
    System.out.println("Mode is " + mode);

    //Print Grades
    char[] grades = getGrades(sortedMarks);
    System.out.println(grades);
    //Print gradeDistn

    int[] gradeDistrubution = gradeDistn(grades);

    System.out.println("Distribution of Marks\nA: " + gradeDistrubution[0] + "\nB: " + gradeDistrubution[1] + "\nC: " + 
            gradeDistrubution[2] + "\nD: " + gradeDistrubution[3] + "\nE: " + gradeDistrubution[4] + 
            "\nF: " + gradeDistrubution[5]);


}

//getMin method will return the minimum mark
public static int getMin(int[] inputArray){
    int minValue = inputArray[0];
    for(int i=1;i < inputArray.length;i++){
        if(inputArray[i] <minValue){
            minValue = inputArray[i];
        }
    }
    return minValue;

}   
//getMax method will return the maximum mark
public static int getMax(int[] inputArray){
    int maxValue = inputArray[0];
    for(int i=1;i < inputArray.length;i++){
        if(inputArray[i] > maxValue){
            maxValue = inputArray[i];
        }
    }
    return maxValue;

}
//getRange method will find the difference between the maximum and minimum marks
public static int getRange(int maxNum, int minNum){
    int max = maxNum;
    int min = minNum;
    int range = (max - min) + 1;
    return range;

}

//getMean method will return the average of marks
public static int getMean(int[] inputArray){
    int total = 0;
    for(int i: inputArray){
        total += i;
    }
    return total/(inputArray.length);

}

// arraySort method sorts the array of grades in numerical ascending order
public static int [] arraySort(int [] inputArray){
    int [] sortedArray = Arrays.copyOf(inputArray, inputArray.length); 
    Arrays.sort(sortedArray);
    return sortedArray;


}
//getMedian method will return the median value of the set of marks
public static int getMedian(int[] inputArray){
    int listLength = inputArray.length;
    int x = listLength / 2;
    int median = inputArray[x];

    return median; 

}

//getMode method will return the mode of the set of marks, which is the most commonly occurring mark
public static int getMode(int[] n) {
    int maxValue = 0;
    int maxCounts = 0;
    int[] counts = new int[n.length];

    for (int i=0; i < n.length; i++) {
        counts[n[i]]++;
        if (maxCounts < counts[n[i]]) {
            maxCounts = counts[n[i]];
            maxValue = n[i];
        }
    }
    return maxValue;
}

/*grades method will return an array of characters which are the grades 
  corresponding to the integer marks in the array of marks */
public static char [] getGrades(int[] n){
    int[] grades = new int[n.length]; 
    char[] marks = {'A', 'B', 'C', 'D', 'E', 'F'};
    char[] convertedGrades = new char[n.length];


    for (int i = 0 ; i < grades.length; i++){
        grades [i] = i;
        if (grades[i] >= 90)                                        
            convertedGrades[i] = marks[0];
        else if (grades[i] >= 75)                                       
            convertedGrades[i] = marks[1];
        else if (grades[i] >= 60)                                       
            convertedGrades[i] = marks[2];
        else if (grades[i] >= 50)                                       
            convertedGrades[i] = marks[3];
        else if (grades[i] >= 45)                                       
            convertedGrades[i] = marks[4];
        else                                    
            convertedGrades[i] = marks[5];
    }
     return convertedGrades; 
}

// GRADESDISTN METHOD
public static int[] gradeDistn(char[] arr){
    char[] characterArray = new char[arr.length]; 
    int A=0,B=0,C=0,D=0,E=0,F=0;

    for (char i = 0 ; i < characterArray.length; i++){
        characterArray [i] = i;
        if (characterArray[i] == 'A')
            A++;
        if (characterArray[i] == 'B')
            B++;
        if (characterArray[i] == 'C')
            C++;
        if (characterArray[i] == 'D')
            D++;
        if (characterArray[i] == 'E')
            E++;
        if (characterArray[i] == 'F')
            F++;
    }
     int[] marks = {A, B, C, D, E, F};
     return marks; 
}
 int A=0,B=0,C=0,D=0,E=0,F=0;
 int[] marks = {A, B, C, D, E, F};