C的一段程序如果输入两位或两位以上的数(假设位数为n)把这个数的后n-1位输出例如输入123输出23..unsignedt,s=0,s1=1,p=0;t=m;while(tgt;10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}returns;我承认这段程序
<p>问题:C的一段程序如果输入两位或两位以上的数(假设位数为n)把这个数的后n-1位输出例如输入123输出23..unsignedt,s=0,s1=1,p=0;t=m;while(tgt;10){if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;}returns;我承认这段程序<p>答案:↓↓↓<p class="nav-title mt10" style="border-top:1px solid #ccc;padding-top: 10px;">金海的回答:<div class="content-b">网友采纳 思路: t=m(估计m你定义的是输入的那个数,拿123举例吧) while(t>10),如果t100 if(123/10)即if(12),条件真 则执行下面的p=t%10;p=123%10=3 s=3*1=3//这是各位数字 s1=10 t=t/10(t=12) ----------------------- if(12/10)为真 p=12%10=2 s=3+10*2 t=t/10=1 --------------------- 循环结束 返回s结果23 p是每一位的数字,s1是位数的系数(十位10、百位100) 123=1*100+2*10+3*1(其中1、10、100就是s1的意义) 注意if(t/10)执行后t的值并没有改变
页:
[1]