я не столкнулся с какой-либо проблемой, когда я печатаю только имя студента и его метку, но когда я пишу код для вычисления или возврата своего класса, он не показывает оценку, которую я хочу. И когда я хочу ввести имя студента и отметки для ученика 1, он просто пропустил ученика 2 и попросил имя и класс ученика 3... кто-нибудь знает, как это исправить? ниже мой код:
function Average() {
var text = "";
var person = new Array();
var marks = new Array();
var grade = new Array();
for (var i = 0; i < 3; i++) {
person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");
for (var i = 0; i < marks.length; i++) {
if (marks[i] >= 85 && marks[i] < 100) {
grade[i] = "HD";
} else if (marks[i] >= 75 && marks[i] < 85) {
grade[i] = "D";
} else if (marks[i] >= 65 && marks[i] < 75) {
grade[i] = "C";
} else if (marks[i] >= 50 && marks[i] < 35) {
grade[i] = "P";
} else if (marks[i] >= 00 && marks[i] < 50) {
grade[i] = "F";
}
text += "the student name is : " + person[i] + " " + " " + "theirs marks are : " + marks[i] + grade[i] + "<br>";
}
// text += "the student name is : " + person[i] +" " +" " + "theirs marks are : " + marks[i] + grade[i] +"<br>";
}
document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>
мой результат:
function Average() {
var text = "";
var person = new Array();
var marks = new Array();
var grade = new Array();
for (var i = 0; i < 3; i++) {
person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");
}
for (var i = 0; i < marks.length; i++) {
if (marks[i] >= 85 && marks[i] <= 100) {
grade[i] = "HD";
} else if (marks[i] >= 75 && marks[i] < 85) {
grade[i] = "D";
} else if (marks[i] >= 65 && marks[i] < 75) {
grade[i] = "C";
} else if (marks[i] >= 50 && marks[i] < 65) {
grade[i] = "P";
} else if (marks[i] >= 00 && marks[i] < 50) {
grade[i] = "F";
}
text += "The student name is: " + person[i] + " " + " " + "their marks are: " + marks[i] + grade[i] + "<br>";
}
document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>
Вам нужно переместить внутренний контур из первого цикла.
Вы не закончили запрос на цикл до начала вычисления цикла. Он должен гласить:
function Average() {
var text = "";
var person = new Array();
var marks = new Array();
var grade = new Array();
for (var i = 0; i < 3; i++) {
person[i] = window.prompt("enter student name " + (i + 1) + "of 3", "");
marks[i] = window.prompt("enter student marks " + (i + 1) + "of 3", "");
}
for (var i = 0; i < marks.length; i++) {
if (marks[i] >= 85 && marks[i] < 100) {
grade[i] = "HD";
} else if (marks[i] >= 75 && marks[i] < 85) {
grade[i] = "D";
} else if (marks[i] >= 65 && marks[i] < 75) {
grade[i] = "C";
} else if (marks[i] >= 50 && marks[i] < 35) {
grade[i] = "P";
} else if (marks[i] >= 00 && marks[i] < 50) {
grade[i] = "F";
}
text += "the student name is : " + person[i] + " " + " " + "theirs marks are : " + marks[i] + grade[i] + "<br>";
}
document.getElementById("id").innerHTML = text;
}
<p> click this to active the window prompt </p>
<button onclick="Average()"> Click Me </button>
<p id="id"></p>
Кроме того, ваша система маркировки не учитывает 100 (это только <100), и я думаю, что вы набрали "35" вместо "65":
if (marks[i] >= 85 && marks[i] <= 100) {
...
} else if (marks[i] >= 50 && marks[i] < 65) {
Надеюсь это поможет!
i
для обоих циклов. Выберите другое имя переменной.