本题分为两个步骤求解:
1、从24个月份温度信息,每3个月为一个季节,计算出每个季节的温度差(最大值-最小值)得到8个季节的温差;
计算一个季节温差的算法为:
因为题干中 0<=平均温差<=100 ,则将月份温差最大值 monthMax 初始化为 0;月份温差最小值 monthMin 初始化为 100;
任意代入几个数字,就可以梳理出其中的逻辑
假如三次输入分别为 8 7 6
则当输入8后,tmp=8, monthMax=8, monthMin=8;
输入7后,tmp=7, monthMax=8, monthMin=7;
输入6后,tmp=6, monthMax=8, monthMin=6;
一轮输入结束后,monthMax中储存着3个数字中的最大值,monthMin为最小值,tmp没有用,可以无视
理解不了的话可以多代入一些数字,多推演几次
2、从8个季节的温差中,找到最大值和最小值,计算二者的差,得到S-Index;
与前面计算季节温差的方式相同,这里设置了两个变量,分别储存季节温差的最大值和最小值
根据上一步的代码,每完成3个数字的输入,可以得到一个季节中的monthMax和monthMin
再进行一步判断
完整代码: