이 코드는 가장 높은 값과 가장 낮은 값을 제외하고 연습에서 요청한대로 작동합니다. 나는 최대 및 최소 일을 시도했지만 잘못된 장소에 두거나 뭔가를 놓쳤습니다. 예를 들어 1, 2, 3, 11, 20을 입력하면 가장 높은 값이 3이라고 말합니다.
입력 한 내용을 표시 한 다음 정렬하고 숫자의 합계를 표시 한 다음 가장 높은 값과 가장 낮은 값을 표시하도록 다시 돌아와야합니다.
내가 어디로 잘못 가고 있습니까? 나는 최대와 최소를 사용해야한다고 생각하지만 그것들을 사용하여 작동하지 않는 것 같습니다.
<meta charset="UTF-8">
<title>Laskenta</title>
<script>
var yht=0; //total
var luku=0; //numbers entered
var suurin;// largest number entered
var pienin; // smallest number entered
var i;//counter
var heitto=new Array(5);//heitto= throw
for( var i = 0; i < heitto.length; i++) {
heitto[i]=prompt("anna ", i + 1 + " . heitto")
document.write ("Index " + i + ": " + "heitto = " + heitto[i]+"<br>");
if (i == 0) {
suurin = heitto[i];
pienin = heitto[i];
}
else {
if (heitto[i] > suurin) suurin = heitto[i];
if (heitto[i] < pienin) pienin = heitto[i];
}
yht+=parseInt(heitto[i]);
}
document.write ("<br>" + "suurin - pienin heittojen " + heitto.sort(function(a, b){return b-a}) + "<br>");
document.write("<br>" +"Syöttämiesi heittojen summa on " ,yht, "<br>");
document.write("<br />Suurin heitto on "+suurin);
document.write("<br />Pienin heitto on "+pienin);
</script>
기본적으로 두 가지 문제가 있습니다.
입력에 대한 숫자 값 대신 문자열 3
이 가장 큰 값이지만 3
문자열 일 때만 입니다. 문자열로 정렬 '1', '11', '2', '20', '3'
합니다.
heitto[i] = +prompt("anna ", i + 1 + " . heitto"); // get the numerical value of input
// ^
비교 결과에 올바른 시작 값이 없습니다.
suurin = -Infinity; // initialize with a small number
pienin = Infinity; // initialize with a big number
가장 높은 값과 가장 낮은 값을 얻기위한 루프에서는 문자열을 비교하고 문자열 순서 때문에 결과를 얻습니다. 수치 비교를 위해, 단항와 수에 하나 암시 적 캐스팅으로 숫자 값으로 사전에 모두 값을 변환하는 것이 좋습니다 +
, 또는에 명시 적으로 parseInt
, parseFloat
또는 Number
.
정렬 함수는 -
. Taht는 위와 같은 정렬 순서를 가진 배열 대신 숫자 정렬 배열을 얻는 이유입니다.
var yht = 0; //total
var luku = 0; //numbers entered
var suurin; // largest number entered
var pienin; // smallest number entered
var i; //counter
var heitto = new Array(5);//heitto= throw
suurin = -Infinity; // initialize with a small number
pienin = Infinity; // initialize with a big number
for (var i = 0; i < heitto.length; i++) {
heitto[i] = +prompt("anna ", i + 1 + " . heitto"); // get the numerical value of input
document.write("Index " + i + ": " + "heitto = " + heitto[i] + "<br>");
if (heitto[i] > suurin) { suurin = heitto[i] };
if (heitto[i] < pienin) { pienin = heitto[i] };
yht += parseInt(heitto[i]);
}
document.write("<br>" + "suurin - pienin heittojen " + heitto.sort(function (a, b) { return b - a }) + "<br>");
document.write("<br>" + "Syöttämiesi heittojen summa on ", yht, "<br>");
document.write("<br />Suurin heitto on " + suurin);
document.write("<br />Pienin heitto on " + pienin);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다