2014-04-29 31 views
0

标题是一个问题。提示用户输入10个数字,将其排列在数组中,查找平均数,并且打印数字低于平均水平

这是我到目前为止有:

html> 
<head> 
    <title> New Document </title> 
</head> 
<script type = "text/javascript"> 
var i; 
var elmt = nums[10]; 
var ask = prompt("Please enter 10 numbers"); 
var sum = 0 
for(var i =0, i< elmt.length; i++;): 
    sum += parseInt(elmt[i], 10); 

var avg = sum/elmt.length; 

document.write("The sum of all the elements is: " + sum + " The average is: " +avg); 

<body> 

</body> 
</html> 

我真的不知道我在做什么是诚实的。我试图研究数组和这个问题和类似的问题,所以我可以尝试学习语法,但无济于事。我正在靠自己练习来尝试和学习。请不要抨击,我不要求任何人为我做这件事,暗示会好起来的。我不是一些青少年无休止地倾倒在代码中,并希望互联网做我的作业。

EDIT1:

<html> 
<head> 
    <title> nums </title> 
</head> 
<script type = "text/javascript"> 
var sum =0; 
var belowAvg = 0; 
var num = new Array(10); 
var sum = 0 
var i; 

for(i = 0; i<10; i++;): 
{ 
    num[i] = eval(prompt("Enter a number")); 
    sum = sum + num[i]; 
} 

avg = sum/10; 
for (i=0; i<10; i++) 
{ 
    if (num[i] < avg) 
    { 
     belowAvg++; 
    } 
} 

alert ("average is" + avg); 
alert (belowAvg + "numbers are less than the average"); 

</script> 

<body> 

</body> 
</html> 

EDIT2:

好了,现在我非常丢失。每个人都有很好的答案,除了我的理解都不足以不幸地应用其中的任何一个。我一直在玩弄所有的建议,但我仍然迷失。任何人都可以给我看一个例子吗?我不希望我的手被举行,但... ...

+0

输入是否必须是'prompt's?你可以在页面上转储10个''盒子,并对按钮按下作出反应。否则,您也可以提示一次(接受逗号分隔的列表),然后使用'String.prototype.split'将它们放入数组中。从那里开始,像你一样遍历它们并返回结果。 –

+0

我想你想要使用拆分为了把问价值elmt。 – user189

+0

尝试一次处理这一块。你如何提示用户输入?你如何将输入存储在数组中?你如何找到一组数字的平均值?你如何遍历一个数组并打印出比平均值更小的项目? – elevine

回答

0

你几乎在那里,但你只提示一次,并将输入放入一个变量。如果你需要10个数字,你需要提示10次(否则你需要解析输入并从中提取10个数字)。

假设你想填充elmt通过ask的一些方法(这里我用input代替asknums,而不是elmt - 但我们谈论的未成年人语义):

方法一,提示10次:

// initialize array with 10 elements 
var nums = new Array(10); 
// iterate over each element and prompt for value 
for (var i = 0; i < nums.length; i++){ 
    var input = prompt('Enter number ' + (i + 1) + ' of ' + (nums.length + 1)); 
    // place value (as a number) into the array 
    nums[i] = new Number(input); 
} 
/* sum/average code */ 

方法二,提示一次和String.prototype.split

// initialize array with 10 elements 
var nums = new Array(10); 
// prompt for 10 numbers 
var input = prompt('Enter ' + (nums.length + 1) + ' numbers separated by commas:'); 
var values = input.split(','); 
// check we have the right amount 
if (values.length == nums.length){ 
    // iterate over the values 
    for (var i = 0; i < nums.length; i++){ 
    // place the input (as a number) into the array 
    nums[i] = new Number(values[i]); 
    } 
} 
/* sum/average code */ 

方法三,输入框:

<script> 
    function average(){ 
    // initialize array with 10 elements 
    var nums = new Array(10); 
    // iterate over the elements 
    for (var i = 0; i < nums.length; i++){ 
     // grab <input> based on id attribute 
     var input = document.getElementById('num' + i); 
     // insert the value (cast as a number) in to the array 
     nums[i] = new Number(input.value); // case to number 
    } 
    /* sum/average code */ 
    } 
</script> 

<p>Enter 10 numbers:</p> 
<input type="text" id="num0" /> 
<input type="text" id="num1" /> 
<input type="text" id="num2" /> 
<input type="text" id="num3" /> 
<input type="text" id="num4" /> 
<input type="text" id="num5" /> 
<input type="text" id="num6" /> 
<input type="text" id="num7" /> 
<input type="text" id="num8" /> 
<input type="text" id="num9" /> 

<button onclick="average()">Click to average</button> 
+0

我还没有尝试过,但是如果您不介意查看,我在编辑中更新了代码。 – user3543981

+0

只是。 1:*从不*使用'eval()'。这会让你陷入更多的困境,99%的时间没有必要。 2:如果你想输出的数字低于平均水平,使用另一个数组和['Array.prototype.push'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push)中的值(然后在完成时输出它们)。 –

+0

aaaaaaaaand现在我迷路了-_- – user3543981