meili 发表于 2022-10-27 16:11:29

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]
查看完整版本: 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;我承认这段程序