int [] arr ={17,23,45,234,256,23,27,3356,23};
求最值方法里for循环的初始化语句 x 从0或者1或者2开始都不影响结果是因为
1、在求最大值时,因为你设定的变量 max 的初始化值为arr[0],当for循环的初始化语句 x =0,首先比较的是max和
arr[0],因为max 的初始化值为arr[0],所以两个值是相同的,这样的比较很没意义,所以当你设定的变量
int max=arr[0];时,for循环的初始化语句 x 从0或者1开始都是不影响结果的。 而当x从2或者5开始不影响结果,是因为你设定的这个数组的问题,在你设定的这个数组中,最大值的角标为7,
所以只要在for循环中有数组中角标为7的数参与比较,就能取得正确的最大值,如当 x=5,那么for循环取最大值
就相当于求数组int[] arr1={17,23,27,3356,23}的最值,结果都为 max=3356, 如果将上面的数组改为int [] arr ={17,5555,45,234,256,23,27,3356,23};
那么 x 从0或者1开始求得的最值为 5555,而从5开始求得的最值为3356,。
2、求最小值时不影响结果原因跟上面一样,也是因为你设定的这个数组的问题,初始化最小值就是这个数组的最小值,所以无论x从哪里开始,最小值正确。
而打印数组时,x=0是从数组的0角标位开始打印,x=1是从1角标位开始打印。
|