我必须
然后
程序应该看起来像:
How many students are in the class? 2
Enter name for Student 1: Bob
Enter quiz score answers: <allow user to input 12 answers>
Bob
66.7%
Enter name for Student 2: Fred
Enter quiz score answers: <allow user to input 12 answers>
Fred
91.7%
The high score is 11 and the low score is 8
Average is: 79.2%
我已经设置了这个数组,但我真的不知道如何使用for循环来实现它。
import java.util.*;
public class Lab4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String name;
char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
char [] userAnswers = new char[answerKey.length];
}
}
感谢您帮助到目前为止, 我已经对它进行了一些研究,但是在输入答案后它给了我一个错误 这就是我所拥有的
import java.util.*;
import java.text.*;
public class Lab4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String input;
int students;
int correctAnswers=0;
char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
char [] userAnswers = new char[answerKey.length];
DecimalFormat df = new DecimalFormat("#0.0");
System.out.print("how many students are in your class?");
input = s.nextLine();
students=Integer.parseInt(input);
String [] name = new String[students];
int j=1;
while(students>=j)
{
System.out.print("Enter name of student" + j + ": ");
name[j] = s.nextLine();
System.out.print("Enter quiz score answers");
userAnswers[answerKey.length] = s.next().charAt(0);
for (int i = 0; i < userAnswers.length; ++i)
{
if(userAnswers[i]==answerKey[i]);
correctAnswers++;
}
System.out.print((df.format(correctAnswers/answerKey.length)) + "%");
j++;
}
}
}
错误消息是线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:12 在Lab4.main(Lab4.java:29)
我不确定这意味着什么或如何解决它。
答案 0 :(得分:0)
这是一个关于数组的快速教程的跳转 - &gt; http://www.learn-java-tutorial.com/Arrays.cfm#.US09R-sjqy0
正如评论中所述,我们不会为您编写代码,但我会尝试提供一些有用的指示:
您想要提示用户有多少学生在课堂上,这应该是在课堂上讲授的。接受该输入并将其存储在变量中。
创建while
循环以接受每个学生的数据。循环应该只运行用户说有学生的次数。
在循环中接受所有学生数据,答案,姓名等。
收集完所有数据后,您需要将学生的答案与密钥进行比较。您可以使用for
循环或while
循环执行此操作。我会推荐一个for循环,创建一些计数器来跟上多少答案是正确的还是不正确的,你的选择然后在循环后做数学来得到你的百分比。
打印结果并重新开始循环。
阵列上的Java文档:http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Array.html
一些快速的特定于阵列的指针:
访问数组:
String[] array = {"a", "b", "c", "d"}; //creates array
System.out.println( array[0] ); //prints out "a"
System.out.println( array.length ); //prints out "4", the number of elements in the array
希望这有帮助!