2014-05-08 50 views
0
for(int i = 0; i < 2; i++) 
    { 
    System.out.print("How many grades does the student have for semester " + (i+1) + ": "); 
    gradeAmt = keyboard.nextInt(); 

    while(gradeAmt <= 1) 
     { 
     System.out.println("You need to enter at least two grades."); 
     System.out.print("Enter again: "); 
     gradeAmt = keyboard.nextInt(); 
     } 
    int[] gradeArray = new int[gradeAmt]; 

    for(int k = 0; k < gradeArray.length; k++) 
     { 
     System.out.print("Enter test " + (k+1) + ": "); 
     gradeArray[k] = keyboard.nextInt(); 
     } 
    } 

查看这段代码,我想将两个宿舍中的测试值传递给一个方法转换成字母等级。例如,如果第1学期的测试值是90和80,第2学期的值是90和60,那么我想要返回的方法是2 A,1 B和1 D是一年中的成绩。 我将如何去通过两个学期的输入方法?将一个数组的值传递给一个方法

完整的代码可以在http://pastebin.com/ER2kEwA5 进行查看和我创造的方法尝试对线56(PS我知道它的可怕)

+0

什么是上面的代码学期? – fscore

+0

这听起来像你只需要按照你所说的去做。它是避开你的语法吗? – keyser

+0

你可以请数字级的信级等级的方法吗?很难知道你使用我们看不到的代码有什么问题。 – azurefrog

回答

0

要打开数字到字母,你可以使用这样的事情:

char[] gradeLetters = {'A','B','C','D','E','F'}; 
int[] count = {0,0,0,0,0,0}; 
for(int k = 0; k < gradeArray.length; k++) 
{ 
     int gradeIndex = (100 - gradeArray[k])/10; 
     count[gradeIndex]++; 
} 

要打印出来的信只是用:

for(int k = 0; k < count.length; k++){ 
     if(count[k] == 1)  
     System.out.printline("1 "+ gradeLetters[k]); 
     else if(count[k] > 1) 
     System.out.printline(count[k]+" "+gradeLetters[k]+"'s"); 
    } 
0

使用数组提交(和返回)所有的值。

char[] getGrades(int[] score) { 
    char[] grades = {'A', 'B', 'C', 'D', 'E', 'F'}; 
    char[] retVal = new char[score.length]; 
    for (int i = 0; i < score.length; i++) { 
     retVal[i] = grades[Math.min(5,(9 - (score[i]/10)))]; 
    } 
    return retVal; 
} 
相关问题