各位C++的大虾们!小弟有一道白痴题不明白!麻烦你们了!

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:32:36
#include <iostream.h>
void main ()
{
int hi,num:
cout << "输入一个整数:";cin >> num;
cout << "反向显示结果:";
while (num!=0)
{
hi=num % 10; //依次求个位、十位.....上的数字hi。
num=num / 10;
cout << hi;
}
cout << endl;
}
结果是:输入一个整数:123456
反向显示结果:654321
---------------------------------------------
我想知道他的算法!运算过程最好写下来(举个例)!我知道这是个while循环!
只是不知道hi=num % 10; num=num / 10;
各位大大帮帮忙!

这个算法其实很简单啊,呵呵,%百分号呢,这个是求余,你知道吧,123456除以10的余数是几?是6吧
123456/10是求什么?是求商吧。根据定义int类型,所以只保留整数部分,123456/10就是12345
所以第一次循环hi=6,num=12345,第二次循环hi=5,num=1234.。。。以此类推。
它不是一下就计算出来的,而是一个一个写上去的654321,注意cout在循环里面哦。呵呵。

其实很简单,就是逆序问题
例如123
123!=0 123%10=3,求出了个位数,然后输出3
123/10=12
12!=0 12%10=2,求出了十位数
12/10=1
1!=0 1%10=1;从而求出了百位数

就是这么回事