2014-04-29 32 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