#include <stdio.h>
// #include<malloc.h>

// int curlen(int num) {
//     int len = 0;
//     while (num) {
//         num /= 10;
//         len++;

//     }
//     return len;
// }
// int* NumArr(int num, int len) {
//     int* arr = (int*)malloc(len * sizeof(int));
//     int index = 0;
//     while (num) {
//         arr[index++] = num % 10;
//         num /= 10;
//     }
//     return arr;

// }

// int main() {
//     long int n;
//     scanf("%ld", &n);
//     int len = curlen(n);
//     int* arr = NumArr(n, len);
//     for (int i = 0; i < len / 2; i++) {
//         int temp = arr[i];
//         arr[i] = arr[len - i - 1];
//         arr[len - i - 1] = temp;
//     }

//     for (int i = 0; i < len; i++) {
//         if (arr[i] % 2 == 0)
//             arr[i] = 0;
//         else
//             arr[i] = 1;
//         printf("%d", arr[i]);
//     }
// }

int main() {
    int n;
    int cnt = 0;
    int a[9] = {0}; //用于存放0和1
    int result = 0;
    scanf("%d", &n);
    //从最后一位开始检查每一位上是奇数还是偶数,注意a[0]存放的是最后一位,得出数组后需要从数组最后一位开始计算
    while (n) {
        int m = n % 10;
        if (m % 2 == 0)
            a[cnt++] = 0;
        else
            a[cnt++] = 1;
        n /= 10;

    }
    for (int i = cnt - 1; i >= 0; i--)
        result = result * 10 + a[i];
    printf("%d", result);
}

我用第一个方法写出来的不是一个数,怎么样变成一个数好烦