对输入的任意4位正整数x,求出它的逆序数y,并输出y的值,这里所谓逆序数是指把x的个位、十位、百位、千位分别作为千位、百位、十位、个位重新构成的4位正整数。

对输入的任意4位正整数x,求出它的逆序数y,并输出y的值,这里所谓逆序数是指把x的个位、十位、百位、千位分别作为千位、百位、十位、个位重新构成的4位正整数。
如果输入的是1200 怎么才能使逆序的输出是0012而不是12呢?

你可以用字符串解决,望采纳,谢谢

#include <stdio.h>
#include <string.h>

int main(){
    char c[17];
    int i;
    scanf("%s", c);
    for(i = strlen(c) - 1; i >= 0; i--){
        printf("%c", c[i]);
    }
    return 0;
}

img

使用 iomanip

输出时,如果位数小于4,就用 0 补齐

#include<iostream>
#include <iomanip>  //重点哦
using namespace std;

int main(void)
{
    int N = 12;
    cout << setw(4) << setfill('0') << N << endl;

    return 0;
}

img

1200%10得个位,直接输出,1200/10,进行下一次循环