#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); }
我用第一个方法写出来的不是一个数,怎么样变成一个数好烦