while(true)中主要是将计算出的天、时、分、秒的数值分别装入数组中的arr[0],arr[1],[2],[3]中。
例如:输入的数值是3601,
while (num > 0) //3601大于0,执行循环
{
int tmp = num % 60; //temp=1,
arr[--pos] = tmp; //由于pos的值为4,所以arr[3]=1;
num = num / 60; //num=60
/*此时由于num>0,继续循环上面的代码,可以计算出arr[2]=0; num=1,
再次循环的arr[1]=1,num=0; 此时在往下执行代码,arr[1]=1<24, 得出arr[0]=0;所以数组装入的数据为{0,1,0,1}
再通过后面的for循环得出相应的天、时、分、秒。 */
if (24 <= arr[1]) {
arr[0] = arr[1] / 24;
arr[1] = arr[1] % 24;
}
}
代码中的这句话应该是错误的,这个语句加入进去编译也通过不了啊!!!
上面只是列举的一个比较特殊的num,其他数字的执行原理是一样的。
可能解释的不是很好,希望见谅。:)
|