Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我试图在带有提示的数组中找到最高标记和最低标记_Javascript_Arrays - Fatal编程技术网

Javascript 我试图在带有提示的数组中找到最高标记和最低标记

Javascript 我试图在带有提示的数组中找到最高标记和最低标记,javascript,arrays,Javascript,Arrays,因此,我的老师给我们布置了一个作业,让我们制作一个程序,在最多15名学生中找出最高和最低分数。因此,有可能投入不到15名学生。用户必须输入学生的姓名和学生的分数。在所有学生的名字和分数都输入后,应该比较分数,找出最小的和最大的 代码: 问题: 1.当它比较数字时,只取第一个数字作为最大的数字,就这样。假设我把第一个学生的分数定为99,然后我把第二个学生的分数定为100。上面说99分是最高分,同样的,底片是最低分 2.我也知道,如果我输入100,像29、99等数字是更高的数字,因为1highest

因此,我的老师给我们布置了一个作业,让我们制作一个程序,在最多15名学生中找出最高和最低分数。因此,有可能投入不到15名学生。用户必须输入学生的姓名和学生的分数。在所有学生的名字和分数都输入后,应该比较分数,找出最小的和最大的

代码:

问题: 1.当它比较数字时,只取第一个数字作为最大的数字,就这样。假设我把第一个学生的分数定为99,然后我把第二个学生的分数定为100。上面说99分是最高分,同样的,底片是最低分

2.我也知道,如果我输入100,像29、99等数字是更高的数字,因为1<2或9等

3.对于负数,如果我加上-13和-99,-13表示它是最低的,而不是最低的

同样,如果我把10和100作为负数,10更大/最小。
我试过很多东西,不知道出了什么问题。顺便说一句,这是我第一次使用javascript。这项作业星期一到期。谢谢A

这是一个如何做到这一点的例子。注意验证是如何完成的,并将用户输入转换为实际数字进行比较。只需要一个主回路;while循环用于确保用户输入有效数据

您不需要将所有学生的数据实际存储为一个数组来显示最高和最低结果

var学生=[]; 学生,最高={mark:-1},最低={mark:101}; //获取1到15之间的学生人数 而我是纳努姆学生| |努姆学生15 numOfStudents=parseIntprompt'有多少学生?1-15', '1', 10; //对于每个学生,获取姓名和分数 对于i=1;我100 student.mark=parsefloat提示“输入学生”+i+“标记0-100:”; //检查是最高还是最低 如果student.mark>highest.mark highest=学生; 如果student.markdocument.body.innerHTML=highest.name+的最高标记为+highest.mark+。+lowest.name+的最低分为+lowest.mark+。;无论您在哪里比较,都可以使用parseIntnumber作为所有标记和填充,这样效果更好。谢谢我只是修改了一些东西来完成任务。你帮了大忙!
var Students = ["sn1", "sn2", "sn3", "sn4", "sn5", "sn6", "sn7", "sn8", "sn9", "sn10", "sn11", "sn12", "sn13", "sn14", "sn15"]; //student's name array
var Marks = ["sm1", "sm2", "sm3", "sm4", "sm5", "sm6", "sm7", "sm8", "sm9", "sm10", "sm11", "sm12", "sm13", "sm14", "sm15"]; //student's marks array
Students[0] = prompt("Student 1's name.");
    if(Students[0].length == 0) { 
        Marks[0] = null
    } else {
        Marks[0] = prompt("Student 1's mark."); //I just copied and pasted this 15 times and changed  the [0] to the next number.
        while(isNaN(Marks[0]) || Marks[0] >= 101 || Marks[0] <= -101) { //if number is greater than or equal to 101, or less than or equal to -1. Prevents a mark higher than 100 and less than 0.
        window.alert("Please input a number between 0-100.");
        Marks[0] = 0
        Marks[0] = prompt("Student 1's mark."); //reprompt.
    }
}
console.log(Students[0] + " " + Marks[0]); //displays mark.

var greatest = -100; //my friend did this part so I don't know if it's right.
var least = 100;
var trackg = 0;
var trackl = 0;
if (Marks[x] != null){ //if this isn't here then I get an error with null.length can't be measured below.
    for(var x = 0; x < Marks.length; x ++) {
        if(Marks[x].length == 2) {
            " " + Marks[x];
        }
        if(Marks[x] >= greatest && Marks[x] != null) {
            greatest = Marks[x]
            trackg = x
        }
    }
}
for(var j = 0; j < Marks.length; j ++) { //the marks[x] != null doesn't work here. it will show that the greatest number is the least number as well which it isn't.
    if (Marks[j] <= least && Marks[j] != null){
            least = Marks[j];
            trackl = j;
    }
}
console.log(Students[trackg] + " has the highest mark of " + Marks[trackg] + ". " + Students[trackl] + " has the lowest mark of " + Marks[trackl] + ".");