//统计成绩
var a=Number(prompt("甲同学成绩"));
var b=Number(prompt("乙同学成绩"));
var c=Number(prompt("丙同学成绩"));
var d=Number(prompt("丁同学成绩"));
var e=Number(prompt("亥同学成绩"));
var max=a>b>c>d>e?a:b>c>d>e?b:c>d>e?c:d>e?d:e;
var min=a<b<c<d<e?a:b<c<d<e?b:c<d<e?c:d<e?d:e;
var sum=(a+b+c+d+e)/5;
alert("最大值:"+max);
alert("最小值:"+min);
alert("平均值:"+sum);
为什么最大值最小值选取不正确,问题出在哪,求解
js中不能a>b>c>d>e这样写
应该是a>b && b>c && c>d && d>e
太复杂了,学了javascript就要多加利用里面的方法
//统计成绩
var a=Number(prompt("甲同学成绩"));
var b=Number(prompt("乙同学成绩"));
var c=Number(prompt("丙同学成绩"));
var d=Number(prompt("丁同学成绩"));
var e=Number(prompt("亥同学成绩"));
const max_1 = arr=>Math.max(...arr);
const min_1 = arr=>Math.min(...arr);
const ar = [a,b,c,d,e];
console.log('计算最大值:'+max_1(ar));
console.log('计算最小值:'+min_1(ar));
该方法是用了ES6的箭头函数以及扩展运算符 用起来特别方便
js中条件运算符(三目运算符)是右结合的(从右向左计算)
所以就用max来看,先计算d>e?d:e,得到d,e的最大值,记为max(d,e),再计算c>d>e?c:max(d,e),如果此时c>e>d的话,该值会等于max(d,e)而不是c
三目运算符怎么写这么复杂的。你计算最大值最小值不用这么写
我也想说为什么写这么复杂
问题很明显啊,问你个问题 a>b>c>d>e为 true时,a是最大值没问题,但是他的对立情况谁告诉你 就是 b>c>d>e?