#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; }