回复 做我_女朋友:我给你讲最多也就只能给你讲懂一次,保证你下次遇到了一样是不懂的,遇到这种看不懂的最好的办法不是问,是自己代入一个数去算,不要怕麻烦:
unsigned long fun(unsigned long n)
{ unsigned long x=0, s, i; int t;
s=n;
/**********found**********/
i=1//这个i是用来控制新的数的位数的,最开始肯定是从个位开始放,所以应该1,然后是10位,所以后面红色的部分就是i=i*10;
/**********found**********/
while(s>0)//因为这个s最开始是n的值,而在循环体最后有个s=s/10我们就可以知道s是将每次判断完了奇数和偶数的位去掉,比如说12,经过除以10就变成了1,这样下一次的个位就是应该判断的位了,而当s等于零就代表所有位都判断完了,s等于零正好不满足条件逻辑值也为假也可以跳出循环了
{ t=s%10;
if(t%2==0){
/**********found**********/
x=x+t*i; i=i*10;
}
s=s/10;
}
回复 做我_女朋友:t是取的s最低位,x是将符合条件的位重新组成的新数,s是用来判断循环的,i是位控制变量,我这样说你还不是一样不明白,只有自己代入去算才行
回复 嘿嘿大人:助教,我想问一下,这个课程当中有很多节都是编程题,可是,我又不会,我是先学下面的讲课的,还是什么的,还有那个有关编程题,我不会,我是不是要背一下啊,好烦啊!
回复 做我_女朋友:你这个情况背下来也起不到好大的作用,人家被起码也是知道各个变量代表的是啥,你这是啥都没有知道啊,所以你必须要静心下来把题搞懂一下,这种题问别人,别人也只能说那么点,你不能光去问,你要知道这个程序是怎么个执行过程才行,然后代入一个数据进去用笔一步一步写出来,这样你就能很容易理解别人讲的是啥了