C++ 输入123,逆序输出321的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:47:02
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
int n, digit;
cout << "输入数字: ";
cin >> n;
cout << n <<"的逆序为: ";
while (n!= 0)
{
digit = n % 10; //求余
cout << digit;
n /= 10; //求商,相当于n=n/10
}
cout<<endl;
cin>>n;
return 0;
}
while (n!= 0) // 这里的 (n!= 0) 如何理解?

digit = n % 10; //求余 商是12余3 n的值并没有变化对吗?还是123?
cout << digit; //这里输出3
n /= 10; // 这里的求商的目的是什么啊?n的值12.3?

这个程序的循环部分怎么理解啊,请大家给我解释下。

算法思路是这样的,拿输入的数取被10除的余数,比如123 %10=3,输出3,接着将n=n/10,也就是n=12,整除小数部分略去,然后再用n%10得到2,输出2,如此类推直到n=0,也就是所有的数都输出后,循环退出。

你的程序是对的,但是你应该去掉#include "stdafx.h" 这个头文件

你要问什么呢
当n不等于0的时候,表明这个数还有位数没有除尽,所以需要继续求余求和