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

京公网安备 11010502036488号