Эй, я пытаюсь вычислить викторину, сравнивая два массива. Установленные два массива - это правильные ответы и ответы учеников на викторину. Я пытаюсь заставить его выглядеть следующим образом:Массивы: Сравнение одного массива с другим, чтобы найти средние значения
Student Marks Средняя
Арни Оценка: 4 Процент: 0,8
Это потому, что Арни получил 4 вопроса исправления из 5 вопросов. Ответы ученика и правильные ответы содержатся в текстовом документе, который я уже загрузил в массив в моем коде. Текстовый документ содержит 2D-массив с ответами Арни в виде символов и 1D-массив, содержащий правильные ответы (также символы). Есть больше учеников, но мне хотелось бы получить некоторые рекомендации о том, как получить среднее значение для Арни, чтобы я мог сделать это для остальных имен самостоятельно.
Вот мой код до сих пор с установленными двумя массивами.
public class workingCode
{
private static String newline = System.getProperty("line.separator");
public static void stuAnsOut(String arg []) throws IOException
{
File studentAns = new File("Ans_Stu.txt");
Scanner stuAns = new Scanner(studentAns);
String stuAnsString[] = new String[6];
char stuAnsArray[][] = new char[3][5];
String[] stuNameArray = new String[3];
for (int i = 0; i<stuAnsString.length;i++)
{
stuAnsString[i]=stuAns.nextLine();
}
for (int i=0,j=0; i<stuAnsArray.length && j<stuAnsString.length;i++, j=j+2)
{
stuNameArray[i] = stuAnsString[j];
}
for (int i=0,j=1; i<stuAnsArray.length && j<stuAnsString.length;i++, j=j+2)
{
stuAnsArray[i] = stuAnsString[j].toUpperCase().toCharArray();
}
System.out.println("Student Answers: ");
System.out.printf("%5s","Name");
for (int i =0; i<1;i++)
{
for (int j =1; j<(stuAnsArray[i].length+1);j++)
{
System.out.printf("%5s",j);
}
}
System.out.printf("%n");
for (int i =0; i<stuAnsArray.length;i++)
{
System.out.printf("%5s",stuNameArray[i]);
for (int j=0;j<stuAnsArray[i].length;j++)
{
System.out.printf("%5s",stuAnsArray[i][j]);
}
System.out.printf("%n");
}
}
public static void corAnsOut(String arg []) throws IOException
{
File correctAns = new File("Ans_Cor.txt");
Scanner corAns = new Scanner(correctAns);
String corAnsString = corAns.next();
char corAnsArray[] = new char[5];
for (int i=0; i<corAnsArray.length;i++)
{
corAnsArray[i] = corAnsString.toUpperCase().charAt(i);
}
System.out.println("Correct Answers: ");
System.out.println(newline);
for (int i =1; i<(corAnsArray.length+1);i++)
{
System.out.printf("%5s",i);
}
System.out.printf("%n");
for (int i =0; i<corAnsArray.length;i++)
{
System.out.printf("%5s",corAnsArray[i]);
}
System.out.printf("%n");
}
}
Мне не разрешено использовать ArrayLists, только массивы. И, пожалуйста, используйте имена массивов, которые у меня уже есть в моем коде. Благодаря!
Редактировать: Это то, что я получил до сих пор. Но это дает мне ошибку:
public static void compareInteger(int corAnsArray [], int stuAnsArray[])
{double score =0;
for (int i = 0; i < stuAnsArray.length; i++)
{if(stuAnsArray[i] == corAnsArray[i])
score += 1.0;
}
System.out.println(score/corAnsArray.length);
}
В какую часть вы застряли? – shmosel
Итак, первая часть получает среднее значение для каждого ученика. Поэтому я должен вывести оценку Арни и процент, который они получили. Для этого я знаю, что мне нужно сравнить правильный массив ответов с массивом ответов учеников. Как это может быть сделано? Предположим, что я делаю другой метод, как я могу назвать оба массива и найти оценку Арни и вычислить среднее значение? Благодарю. – Nb179