差点写错,我本打算直接改,但是22222全改打印出来00000,然后我就想拿一个数组接收每一次的余数,然后从后往前每次*10加起来,这样就没问题了。

#include<stdio.h>
#include<string.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int arr[9] = {0};
    int i = 0;
    int sum = 0;
            while(n)
    {
        if(n%2 == 0)
        {
            arr[i] = 0;
            i++;
            n/=10;
        }
        else
        {
            arr[i] = 1;
            i++;
            n/=10;
        }
    }
    for(int j = i-1;j>=0;j--)
    {
        sum = sum*10+arr[j];
    }
    printf("%d\n",sum);
    return 0;
}