2017-02-26 25 views
-2

整数を入力し、バブルソートメソッドを使用してソートするように求めるプロンプトがループしていますそれを出力に印刷します。ユーザーが4つの数字を入力して整数として出力するように要求されたボタンをクリックし、私が提示した空の配列からHTMLページにソートして印刷する必要があります。私はちょっと試していて、それを正しいものにしていないので、それを設定する方法を理解する助けが必要です。熱心なコーダーではありません。整数を入力してbubblesortメソッドを使用してソートし、出力に出力するように求めるプロンプトが表示されます

<!DOCTYPE html> 
<html> 

<head> 
<title>User Input, Sort and Find!</title> 

<style> 

</style> 
</head> 

<body> 
<h2>Enter 4 numbers user!</h2> 
<p id="myprint"></p> 

<button onclick="userInput()">Input your Numbers!</button> 
<button onclick="searchInput()">Find an inputed number in your array </button> 
<script> 
var numbers = []; 

function userInput() { 
for(var i = 0; i < 4; i++){ 
    numbers.push(prompt("Enter a number 1 at a time, from 1-9 until prompts ask you 4 times:")); 
    if (numbers[i] = NaN) { 
    alert("Enter a number!"); 
    } else if(numbers[i] % 1 == 0) { 
    alert("Enter a whole number!") 
     } 
    } 
} 
//Sort the array and print numbers in inner html 
    function bubbleSort(numbers) { 
    var length = numbers.length; 
    for (var i = (length - 1); i >= 0; i--) { 
     for (var j = (length - i); j > 0; j--) { 
      if (numbers[j] < numbers[j - 1]) { 
       var nmbr = numbers[j]; 
       numbers[j] = numbers[j - 1]; 
       numbers[j - 1] = nmbr; 
      } 
     } 
    } 
} 
function searchInput() { 

} 
document.getElementById("myprint").innerHTML = "Your numbers are" + numbers; 
</script> 

</body> 
</html> 
+2

あなたの問題は何ですか?より具体的にしてください –

+0

私の問題は、数字を入力してvar numbers [];である空の配列にそれらを格納するようにユーザーに尋ねる質問を促すforloopを取得することです。その後、それがソートされ、p = id "myprint"に印刷される必要があります – StoneBrothersProduction

答えて

0

私はあなたのコードを見て、私は見つけることができますいくつかのエラーがあるように思われています。

for(var i = 0; i < 4; i++){ 
     numbers.push(prompt("Enter a number 1 at a time, from 1-9 until prompts ask you 4 times:")); 
     if (numbers[i] = NaN) { // this is the wrong logic ... 
     alert("Enter a number!"); 
     } else if(numbers[i] % 1 == 0) { **// this is not correct because your basically saying every integer number is not a whole number.** 
     alert("Enter a whole number!") 
      } 
     } 
    } 

私は、ユーザーが間違って行くし、それらを扱うことができるすべてのシナリオを検討するよう求められ、あなたのforループの下に設けられているアルゴリズムは、少なくともこれは、あなたが何をしたいものは何でも上に移動するための良い基盤を与える必要があります次はそれと一緒に。

for(var i = 0; i < 4; i++){ 
    var num = prompt("Enter a number 1 at a time, from 1-9 until prompts ask you 4 times:"); 
    if (isNaN(num)) { 
    alert("Enter a number!"); 
    --i; // reset the counter for amount of numbers entered 
    } 
    if(!isNaN(num)) { 
     if(num % 1 != 0){ 
     alert("Enter a whole number!") 
     --i; // reset the counter for amount of numbers entered 
     }else{ 
     numbers.push(num); 
     } 
    } 
} 
+0

それはforloopの部分を助けますが、それを並べ替えて文字列でなく整数にする代わりに数値配列に出力する方法はありますか?その下にある関数はソート方法でしたが、forloopでその上の関数をソートする方法を正確に解釈する方法がわかりません。 – StoneBrothersProduction

+0

私は数分でこの記事を更新して、あなたが助けてくれるものをカバーしようとします –

+0

ありがとう、あなた。私の問題を説明するのに役立つリンクを知っていれば、非常に感謝しています! – StoneBrothersProduction

関連する問題