(Javascript) 让用户输入三个整数,显示它们的总和、平均值、乘积、最小值和最大值。

3
我遇到的第一个问题是如何显示三个数字中最小和最大的数字。出现了两个不同的警报 - 第一个警报说第二大的数字是最大的(因为它还没有考虑第三个数字),第二个警报正确地说明了三个数字中最大的数字是最大的。我不确定为什么会出现这种情况 - 我只需要一个警报。
我遇到的第二个问题是如何显示总和、平均值和乘积。当我尝试运行此代码时,页面就会变空白 - 它根本不起作用。现在,代码的这一部分被注释掉了。如果您知道问题所在,请帮忙解决。我需要所有这些信息在同一个警报中显示。谢谢。JSFiddle: https://jsfiddle.net/HappyHands31/xzsf8ca4/8/
<!DOCTYPE html>

<!-- Fig. 6.14: welcome5.html -->
<!-- Using equality and relational operators. -->
<html>
   <head> 
    <meta charset = "utf-8">
    <title>Compare Numbers</title>
    <h1 style = "text-align:center">Compare the Integers!</h1>
    <script>

     var firstNumber; // first string entered by the user
     var secondNumber; // second string entered by the user
     var thirdNumber; // third string entered by the user
     var sum; // add the integers
     var average; // add the integers, divide by 3
     var product; // multiply the integers

     // enter first number from user as a string
     firstNumber = window.prompt("Enter first integer");

     // enter second number from user as a string
     secondNumber = window.prompt("Enter second integer");

     // enter third number from user as a string
     thirdNumber = window.prompt("Enter third integer");

     // convert numbers from strings to integers
     firstNumber = parseInt(firstNumber);
     secondNumber = parseInt(secondNumber);
     thirdNumber = parseInt(thirdNumber);

     //determine result
     if (firstNumber > secondNumber && thirdNumber)
        window.alert(firstNumber + " is largest");

     if (secondNumber > firstNumber && thirdNumber)
        window.alert(secondNumber + " is largest"); 

     if (thirdNumber > firstNumber && secondNumber)
        window.alert(thirdNumber + " is largest");
    //determine sum, average, and product
    /*
     sum (firstNumber + secondNumber + thirdNumber)
        window.alert("the sum is "); 
     average ((firstNumber + secondNumber + thirdNumber) / 3))
        window.alert("the average is ");
     product (firstNumber * secondNumber * thirdNumber)
        window.alert("the product is");
    */ 


// end if
</script>
</head>
<body>
</body>
</html>
3个回答

3

请仔细阅读本答案。我将逻辑嵌入一个函数,并在找到全部3个数字后调用该函数,同时逻辑也会改变。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Fig. 6.14: welcome5.html -->
<!-- Using equality and relational operators. -->
<html>
    <head>
        <title>Compare Numbers</title>
        <script type="text/javascript">
            var firstNumber, // first string entered by the user
                secondNumber, // second string entered by the user
                thirdNumber, // third string entered by the user
                sum, // add the integers
                average, // add the integers, divide by 3
                product; // multiply the integers

            // enter first number from user as a string
            firstNumber = window.prompt("Enter first integer");

            // enter second number from user as a string
            secondNumber = window.prompt("Enter second integer");

            // enter third number from user as a string
            thirdNumber = window.prompt("Enter third integer");

            // convert numbers from strings to integers
            firstNumber = parseInt(firstNumber);
            secondNumber = parseInt(secondNumber);
            thirdNumber = parseInt(thirdNumber);
            findLargNum(firstNumber,secondNumber,thirdNumber);

            function findLargNum(firstNumber,secondNumber,thirdNumber){
                //determine result
                if (firstNumber > secondNumber) {
                    if(firstNumber > thirdNumber) window.alert(firstNumber + " is largest");
                }
                else if(secondNumber > thirdNumber) window.alert(secondNumber + " is largest");
                else window.alert(thirdNumber + " is largest");

                var sum =  firstNumber + secondNumber + thirdNumber;
                window.alert("the sum is " + sum); 
                var average = (firstNumber + secondNumber + thirdNumber) / 3;
                window.alert("the average is " + average);var product = firstNumber * secondNumber * thirdNumber;window.alert("the product is" + product);
            }
        </script>
    </head>
    <body>
        <h1 style = "text-align:center">Compare the Integers!</h1>
    </body>
</html>

var firstNumber, // first string entered by the user
 secondNumber, // second string entered by the user
 thirdNumber, // third string entered by the user
 sum, // add the integers
 average, // add the integers, divide by 3
 product; // multiply the integers

// enter first number from user as a string
firstNumber = window.prompt("Enter first integer");

// enter second number from user as a string
secondNumber = window.prompt("Enter second integer");

// enter third number from user as a string
thirdNumber = window.prompt("Enter third integer");

// convert numbers from strings to integers
firstNumber = parseInt(firstNumber);
secondNumber = parseInt(secondNumber);
thirdNumber = parseInt(thirdNumber);
findLargNum(firstNumber,secondNumber,thirdNumber);

function findLargNum(firstNumber,secondNumber,thirdNumber){
 //determine result
 if (firstNumber > secondNumber) {
  if(firstNumber > thirdNumber) window.alert(firstNumber + " is largest");
 }
 else if(secondNumber > thirdNumber) window.alert(secondNumber + " is largest");
 else window.alert(thirdNumber + " is largest");
 
 var sum =  firstNumber + secondNumber + thirdNumber;
 window.alert("the sum is " + sum); 
 var average = (firstNumber + secondNumber + thirdNumber) / 3;
 window.alert("the average is " + average);var product = firstNumber * secondNumber * thirdNumber;window.alert("the product is" + product);
}
<h1 style = "text-align:center">Compare the Integers!</h1>


谢谢。我不知道我们需要else和else if。现在我需要显示总和、平均值和乘积(被注释掉的代码部分)。 - HappyHands31
1
请检查我添加的完整可工作代码 - pTi
感谢您,但很遗憾,对话框未显示的问题仍然存在:https://jsfiddle.net/HappyHands31/frpks9sd/1/ - HappyHands31
1
请检查jsfiddle,它对我来说运行良好。 - pTi
我一定是错过了某个小细节。现在完美地工作了。谢谢您,亲切的先生/女士。 - HappyHands31

1
//  Initialising variables
var number1, number2, number3, sum, average, product, largest, smallest;

//Inpuing the Numbers 
// parseInt is used to covert the var to integer value or else the result will be concatenation of all the values
number1 = parseInt(window.prompt('Enter Number 1 :'));
number2 = parseInt(window.prompt('Enter Number 2 :'));
number3 = parseInt(window.prompt('Enter Number 3 :'));

// Adding the Numbers
sum = number1 + number2 + number3;

// Finding the average
average = parseInt(sum) / 3;

// Finding Product 
product = number1 * number2 * number3;

// Checking the Largest value
if (number1 > number2 && number1 > number3) {
    largest = number1;
} else if (number2 > number1 && number2 > number3) {
    largest = number2;
} else {
    largest = number3;
}

//Checking the smallest value

if (number1 < number2 && number1 < number3) {
    smallest = number1;
} else if (number2 < number1 && number2 < number3) {
    smallest = number2;
} else {
    smallest = number3;
}

//Returning or Printing Result in Alert box
window.alert('Sum : ' + sum + '\nAverage : ' + average.toFixed(2) + '\nProduct : ' + product + '\nLargest : ' + largest + '\nSmallest : ' + smallest);

请简要描述您所做的事情。 - Babak Asadzadeh

0
<html>
<script>

     var firstNumber; 
     var secondNumber;
     var thirdNumber;

     firstNumber = window.prompt("Enter number");

     secondNumber = window.prompt("Enter another number");

     thirdNumber = window.prompt("Enter third number");



     if (firstNumber > secondNumber && firstNumber > thirdNumber)
        window.alert(firstNumber + " is largest");

     else if (secondNumber > firstNumber && secondNumber > thirdNumber)
        window.alert(secondNumber + " is largest"); 

     else if (thirdNumber > firstNumber && thirdNumber > secondNumber)
        window.alert(thirdNumber + " is largest");

</script>
</html>

1
欢迎来到StackOverflow,并感谢您的尝试帮助。不过,您的答案可能需要一些散文解释,并且需要进行格式化以获得更好的可读性。请参阅[tour]以获取许多有用的提示。 - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接