int max=scores[0];
for(int i=0;i<scores.length;i++){
if(max < scores[i]){
max = scores[i];
}
}
for(int i=0;i<(scores.length-1);i++){
if(scores[i]<scores[i+1]{
max=scores[i+1];
}
}
1、上面是对的,是通过max与所有的值比较求最大值,这个应该能理解吧
2、下面是不对的,是进行的相邻的两个数比较,如果后边的比前边的大就将后边的赋值给max,这逻辑不对,如果前边已经找到了最大值,后边又出现了scores[i]<scores[i+1]的情况,但是此时的scores[i+1]并不是最大值时也会将此值赋值给max,就出错了。例如:数组scores = {1, 8, 2, 3}这求得的max就是3,而不是8
下面只是拿数组相邻数比较,不一定得出最大
楼上已经给出了详细说明和例子