怎样理解这条C语句?

来源:百度知道 编辑:UC知道 时间:2024/06/17 04:13:49
10个数,找出最大的和最小的数.
我看到有人这样写...
max=-32768;假设这是当前最大值为C整型中的最小值,
min=32767; 假设这是当前最小值为C整型中的最大值,

然后用那10个数跟max和 min比,比max大的就是最大的数,,比min小的就是最小数,,,
我试了哈,,居然可以,,,但我始终无法理解
望达人帮我详细解说一下,,,谢谢了,,

当然可以

max=-32768

则与这十个数比较时开始不管max与这十个的哪个比,max都小,就要交换,这样赋的值=-32768也就基本用不到,与max=a[0](假设这十个数放在数组a中)效果一样,因为max与a[0]比较时肯定会交换数值。

楼主明白没?

最小值一样

不是说比max大就是最大的数,程序中肯定是对10个数遍历,依次看该数是否比max大,是则让max等于该数,所以这个max并不总是-23768,在第一次循环中就基本上被数组中的第一个数给代替了。min也同理

哈哈,这只是对比法嘛,MAX的初值是个最小的负数,那样就保证这10个数就一定比初值大,再一个个的比,就可以找出最大的那个了,同理MIN的初值是最大的正数,那样保证这10个数一定比初值小,一个个的比,就找出最小的了

这十个数是不是十个随机数?

如果是的话,就对了,因为随机产生的数,最大为32768,最小为-32767,所以不过怎么样这十个数一定在这里面

int类型数域为(-32768~32767)
max的初值是int类型中最小的数,就能保证这10个数一定会比初值大,再一个个的比,最大的那个就出来了,同理min的初值是int类型中最大的数,保证这10个数一定比值小,再一个个的比,最小也就出来了。