#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a,i,b=1,j=0,k=0,l=0;//整体思路就是先把收到的数字从低位到最高位依次存进数组;再根据题目要求把奇数偶数换成1和0,再找到第一个不为0的地方开始输出 int A[10]; scanf("%d",&a); for(i=0;b!=0;i++)//注意各个数位在数组中的排放顺序 { A[i] = a % 10;//得到当前最低位 b=(a/=10); //进入下一位 } i -= 1;//i为循环次数,从最高位开始的话,要减去1才是数组中最高位的位置 j = i;//第二个循环用j完成 while (i >= 0)//用2去除,有余数就是奇数,没有就是偶数,把数组换成存储0101010的数组 { if (A[i] % 2 == 0) { A[i] = 0; } else { A[i] = 1; } i--; }
for (k = 0,l=0; k <= j; k++)//查看0的个数
{
if (A[k] == 0)
{
l++;
}
}
if (l == j+1)//全部为0,那么输出0
{
printf("0");
}
else//如果不全为0则
{
while (A[j] == 0)//找到第一个1所在位置
{
j--;
}
while (j >= 0) {//从最高位,即第一个不为0的地方开始输出开始输出
printf("%d", A[j]);
j--;
}
}
return 0; }