要求:
输入一个正整数,然后分别输出它的每一位数。
难点:
一般我们会采用while循环的方式进行循环判断,然后输出。
循环条件为该整数每次进行除以10的运算之后是否商为0,即while (!(n / 10 == 0))。
但是在循环体内,最后一步是要对该整数进行除以10求商的操作,这一步在当该数小于10的整数时,求商结果为0,因此循环条件就不能为真,所以导致整型数的最高一位无法输出,因此我们需要在进行求商的操作之后,来判断该商是否大于10,如果小于10,直接输出。
代码
#include<iostream>
using namespace std;
int main()
{
int n;
while (cin >> n)
{
if (n > 0 && n < 10) cout << n << endl;//当n小于10时,直接输出
if (n >= 10)
{
while (!(n / 10 == 0))//判断条件是,每一次功能新的商不能为0
{
cout << n % 10 << endl;//求余操作
if (n >= 10) n = n / 10;//更新n
if (n < 10) cout << n << endl;//更新之后判断商的大小,小于10,直接输出
}
}
}
}