家庭作业建议只是因为我非常希望学习这个作为第二天性! 目标是创建一个数组,其中包含用户指定的问题数量(数组大小),后跟答案键(现在填充的数组大小)。然后让用户输入“学生”答案以检查密钥。 我写下了所有不用担心的事情。工作可爱。我遇到的问题有两个方面:
我使用了do / while循环来继续检查,但无法获得一个标记值。也取决于我放置它的位置,答案一直作为第一次检查。所以我不确定在哪里放置以及如何编写它。我甚至试图在数组和学生回答部分使用for循环拳击无济于事。 关于让它检查每一个,我想把“i”的数量修改为类似((i + 1)* 2)而不是i ++用于两个for循环,但我只是得到错误,因为它似乎没有一点都不合适。
提前谢谢!
import java.util.Scanner;
import java.text.NumberFormat;
public class EvenQuizzes {
public static void main(String[] args) {
int quizQuest = 0, count = 0;
double percentTotal = 0.0;
Scanner scan = new Scanner(System.in);
System.out.print("How many questions are in the quiz? Or enter 0 to quit. ");
quizQuest = scan.nextInt();
int[] answers = new int[quizQuest]; // scan in question total and apply
// to array
System.out.println("Enter the answer key: ");
for (int i = 0; i < answers.length; i++) {
answers[i] = scan.nextInt();
}
for (int i = 0; i < answers.length; i++) {
System.out.println("Enter the answer to be graded : ");
int toGrade = scan.nextInt();
if (toGrade == answers[i]) {
count++;
}
}
percentTotal = ((double) count / quizQuest);
NumberFormat defaultFormat = NumberFormat.getPercentInstance();
defaultFormat.setMinimumFractionDigits(2);
System.out.println("The questions answered correctly total: " + count);
System.out.println("The percentage correct is: " + defaultFormat.format(percentTotal));
System.out.println("\nAnother quiz to be graded?");
}
}
// do ( quizQuest != 0){ //condition check to run new quiz against KEY
// for (int j = 0; (quizQuest = scan.nextInt()) != 0; j++); {
在底部是我考虑过的循环部分我遇到了麻烦。
答案 0 :(得分:1)
当你要求提示(而不是代码)时,这里是:
对于多个测验,请使用do-while
,如下所示:
do{
//do something
//scan the value of quiz quest
//do something
}while(quizquest != 0)
现在,如果只检查偶数位置的答案,请执行以下操作:
for (int i =0; i <answers.length; i++)
{
System.out.println("Enter the answer to be graded : ");
int toGrade = scan.nextInt();
if(i % 2 == 0 && toGrade == answers[i]){
count++ ;
}
}
答案 1 :(得分:1)
创建一个循环,要求对另一个测验进行评分:您可以使用带有布尔值的do-while循环,指示用户(教师?)是否想要对另一个测验进行评分:
do{
boolean continue = false;
// check if the user wants to continue
while(continue);
让它只检查/评分/计算每个其他答案。 ie:仅答案:您可以使用模运算符检查答案:
if(i % 2 == 0){
// even answer
}
希望这有帮助!
答案 2 :(得分:0)
您应该有一个名为continue
的变量,其默认值为'Y'
。在一开始,创建一个while
循环来检查条件continue==Y
,最后当您询问"Another quiz to be graded?"
时,请读入变量continue
的输入。< / p>