Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Average - Fatal编程技术网

如何用javascript编写一个程序,要求用户输入一个数字列表,然后找到这些数字的平均值

如何用javascript编写一个程序,要求用户输入一个数字列表,然后找到这些数字的平均值,javascript,arrays,average,Javascript,Arrays,Average,我无法让这个程序输出用户输入的提示数字的平均值。我还应该怎么编码呢?任何帮助都将不胜感激 var gpas = []; var gp; var total = 0; let count = 0; var max = 0; var min = 0; var out = ""; while (i != "XXX") { var i = prompt("Enter a gpa or XXX to Stop"); if (i != "XXX") { gpas.push(i

我无法让这个程序输出用户输入的提示数字的平均值。我还应该怎么编码呢?任何帮助都将不胜感激

var gpas = [];
var gp;
var total = 0;
let count = 0;
var max = 0;
var min = 0;
var out = "";
while (i != "XXX") {
    var i = prompt("Enter a gpa or XXX to Stop");
    if (i != "XXX") {
        gpas.push(i);
    }
}
for (var i = 0; i < gpas.length; i++) {
    out += gpas[i];
    out += "<br/>";
}
count++;
total += gpas[i];
var avg = total / count;
out += avg;
document.getElementById('output').innerHTML += out + "<br/>";
var-gpas=[];
var-gp;
var合计=0;
让计数=0;
var max=0;
var min=0;
var out=“”;
而(i!=“XXX”){
var i=提示(“输入gpa或XXX停止”);
如果(i!=“XXX”){
gpas.push(i);
}
}
对于(var i=0;i”;
}
计数++;
总+=GPA[i];
var avg=总/计数;
out+=平均值;
document.getElementById('output')。innerHTML+=out+“
”;

输出显示的是“NaN”,而不是有效的数字。

您只能使用一个变量来保存输入的数字之和,然后将其除以输入的总数

while (i != "XXX") {
    var i = prompt("Enter a gpa or XXX to Stop");
    if (i != "XXX") {
        gpas.push(parseInt(i)); // we need string to number with `parseInt`
    }
}
第一种方法是无限循环: 第一种方法与您正在使用的方法相同。基本上,只要我们没有得到字符串“XXX”,我们就会要求一个新号码

/**
*@const输出打印平均值的范围。
**/
const output=document.getElementById('output');
/**
*@var avg存储输入数字的总和。
*@var i跟踪输入的数字数量。
**/
设sum=0,
i=0;
/**基本上,当真增量i**/
while(1&&++i){
/**请输入号码或“XXX”退出**/
const n=提示符(`输入一个数字或输入“XXX”退出:`,0);
/**如果输入“XXX”,则中断循环(唯一中断无限循环的方法)**/
如果(n=='XXX')中断;
/**如果输入的不是“XXX”,请尝试将其转换为浮动**/
总和+=浮点数(n);
}
/**打印平均值**/
output.textContent=(总和/(i-1)).toFixed(2);/**为什么除以“i-1”而不仅仅是“i”,是因为即使输入“XXX”***/

平均值:
感谢所有做出贡献的人。通过应用给出的一些建议,我能够使它起作用。我还注意到下面的代码也起作用:

 var gpas = [];
 var gp;
var out = "";
while (i != "XXX")
{
var i = prompt("Enter a gpa or XXX to Stop");
if(i != "XXX"){
gpas.push(parseInt(i));
}
}  
     let sum = gpas.reduce((a, b) => {
 return a + b;
}); 

sum;
var avg = (sum/gpas.length);
document.getElementById('output').innerHTML += "average =" + avg + "<br/>";
</script>````
var-gpas=[];
var-gp;
var out=“”;
而(i!=“XXX”)
{
var i=提示(“输入gpa或XXX停止”);
如果(i!=“XXX”){
gpas.push(parseInt(i));
}
}  
让sum=gpas.reduce((a,b)=>{
返回a+b;
}); 
总和
var avg=(总和/gpas.长度);
document.getElementById('output').innerHTML+=“average=“+avg+”
”; ````
请使用
gpas.push(parseInt(i))
for循环后的部分代码似乎属于for循环的
@费利克斯克林,哪些密码应该在里面?非常感谢你,这真的做到了。