问题
填空题
以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。 #include<stdio.h> main() {long s,t,s1=10; pfintf("\n.Please enter s:"); scanf("%1d",&s); t=s%10; while(s>0) {s=s/100; t=______; s1=s1*10; } printf("The result is:%1d\n",t); }
答案
参考答案:s%10*s1+t
解析: 题目要求从低位开始取出长整型变量s中奇数位上的数,设s为7654321,所要去除的为7531。s在每次循环均除以100,因此它的作用是将本次循环所需要得到的奇数位数放到最末一位,而要获得该数仅需在此后将s对10取余,s1初始值为10,且在每次循环后均乘以10,因此可想到是为了将本次循环所获得的奇数位数放到已有数的“前面”,即将上一步所得之数乘以s1,由于是逐次获得奇次位数,所以每次还要加上t的原债。