求助:有一个地方看不懂

chenjiazhijohn 2012-08-22 08:27:14
#include <stdio.h>

int main(void)
{
int number = 0; /*The number to be reversed*/
int rebmun = 0; /*The reversed number*/
int temp = 0; /*Working storage*/

/*Get the value to be reversed*/
printf("\nEnter a positive integer :");
scanf("%d",&number);

temp = number; /*Copy to working storage*/

/*Reverse the number stored in temp*/
do
{
rebmun = 10*rebmun + temp % 10; /*Add the rightmost digit*/
temp = temp/10; /*Remove the rightmost digit*/
}while(temp); /*Continue while temp>0*/

printf("\nThe number %d reversed is %d rebmum ehT\n",number,rebmun);
return 0;
}

书上原文这样写到:temp原本是43,则temp%10结果是3,将10*rebmum+temp%10的值赋予rebmum。

变量rebmum的初始值是0,所以rebmum储存了数字3.将输入值最右边的数字3保存到rebmum后,就可以

给temp除以10,去掉这个数字。temp的初始值是43,所以temp/10的结果四舍五入为4.在循环结束时,

检查while(temp)条件,而temp的值是4,所以该条件是true。因此返回循环的开始处,执行另一个迭代。

后面就是理解不了了:储存在rebmum中的值与10相乘,得到30,再加上temp%10的余数4,所以rebmum的结果

是34.然后将temp除以10,得到0.现在,到达循环迭代的结尾时,temp是0,即false,所以循环结束。

...全文
143 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2012-08-23
  • 打赏
  • 举报
回复
所以temp/10的结果四舍五入为4??
这不是四舍五入结果为4,是temp/10的结果就是4,是因为temp的是int类型,10也是int类型,所以他们的结果也是int类型或者是unsigned int类型。所以按算数计算,temp/10应该是4.3,取整就是4了。
这是一个将一个指定位数的数字,逆序输出。这个主要是理解/和%符号的作用。
chenjiazhijohn 2012-08-23
  • 打赏
  • 举报
回复
谢谢楼上,终于弄懂了
chenjiazhijohn 2012-08-23
  • 打赏
  • 举报
回复
原来是逆序。。。终于懂了,谢谢楼上的兄弟
chenjiazhijohn 2012-08-23
  • 打赏
  • 举报
回复
原来是逆序。。。终于懂了,谢谢楼上的兄弟
chenjiazhijohn 2012-08-23
  • 打赏
  • 举报
回复
嗯,其实我是没有弄明白为什么temp=34,第一次迭代之后,不是temp=4吗?

似梦飞花 2012-08-23
  • 打赏
  • 举报
回复
34除以10等于3余4啊 所以34%10=4
原来你是没搞清楚%的意思啊 哈
%号是求余 就是余数拉
chenjiazhijohn 2012-08-23
  • 打赏
  • 举报
回复
谢谢楼上,还是有个地方不是很明白:

第一次迭代temp=temp/10=4

第二次rebmun=34,temp%10=4如何得到?

如果temp=4,那么temp%10的余数不是0?rubmum=30+0=30?

似梦飞花 2012-08-22
  • 打赏
  • 举报
回复
tempt 43 4 0
rebmun 3 34
第一次循环的最后一步temp = temp/10使得为43的tempt为4,然后rebmun=34,此时temp=4,所以temp = temp/10使得temp为0啊
chenjiazhijohn 2012-08-22
  • 打赏
  • 举报
回复
为什么temp%10的余数变成了4?temp/10=0是怎么来的?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧