我有这个问题需要解决。 这听起来可能很简单,但我完全是初学者。 这是到目前为止我的代码,但当我运行它时只出现一个窗口。 感谢您的建议和帮助
var years= prompt("Enter the number of years: "); // Number of years
var rainFall = new ArrayList();
while (years < 1) {
alert("Invalid. Enter 1 or greater: ");
years =prompt("Enter a year: ");
}
for (var y = 1; y <= years; y++) {
for (var m = 1; m <= NUM_MONTHS; m++) {
alert("Year " + y + " month " + m + ": ");
monthRain = prompt("enter rainfall for a month ");
rainfall.add(monthRain);
}
}
alert("\nNumber of months: " + (years * NUM_MONTHS) + "Total rainfall: " + calculateTotalRainFall(rainFall) + " inches" + "Average monthly rainfall: " + calculateAverageRainFall(rainFall) + " inches");
最佳答案
Array.prototype.sum = function() {
var total = 0;
for(var i in this) {
var i = parseFloat(this[i]);
if(i>=0) {
total += i;
}
}
return total;
};
Array.prototype.avg = function() {
var avg = (this.length>0)? parseFloat(this.sum()/this.length) : 0;
avg = parseFloat(parseInt(avg*100)/100);
return avg;
};
var years = parseInt(prompt("Enter the number of years: ")); // Number of years
var rainFall = [];
while (years < 1) {
alert("Invalid. Enter 1 or greater: ");
years = parseInt(prompt("Enter a year: "));
}
var NUM_MONTHS = 12;
for (var y = 1; y <= years; y++) {
for (var m = 1; m <= NUM_MONTHS; m++) {
alert("Year " + y + " month " + m + ": ");
var monthRain = parseFloat(prompt("enter rainfall for a month "));
if(monthRain>=0) {
rainFall.push(monthRain);
}
}
}
if(years<1) years = 0;
alert("\nNumber of months: " + (years * NUM_MONTHS) + " Total rainfall: " + rainFall.sum() + " inches" + " Average monthly rainfall: " + rainFall.avg() + " inches");
或:
function sumArray (items) {
var total = 0;
for(var i in items) {
var i = parseFloat(items[i]);
if(i>=0) {
total += i;
}
}
return total;
};
function avgArray(items) {
var sum = sumArray(items);
var avg = (items.length>0)? parseFloat(sum/items.length) : 0;
avg = parseFloat(parseInt(avg*100)/100);
return avg;
};
var years = parseInt(prompt("Enter the number of years: ")); // Number of years
var rainFall = [];
while (years < 1) {
alert("Invalid. Enter 1 or greater: ");
years = parseInt(prompt("Enter a year: "));
}
var NUM_MONTHS = 12;
for (var y = 1; y <= years; y++) {
for (var m = 1; m <= NUM_MONTHS; m++) {
alert("Year " + y + " month " + m + ": ");
var monthRain = parseFloat(prompt("enter rainfall for a month "));
if(monthRain>=0) {
rainFall.push(monthRain);
}
}
}
if(years<1) years = 0;
alert("\nNumber of months: " + (years * NUM_MONTHS) + " Total rainfall: " + sumArray(rainFall) + " inches" + " Average monthly rainfall: " + avgArray(rainFall) + " inches");
关于javascript数组输入用户和平均值计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31516182/