最后逆序while为啥不执行

#include<stdio.h>
int main()
{
int i = 0;
printf("选择游戏通道:");
scanf_s("%d", &i);
switch (i)
{
case 1:
{
printf("游戏1\n");
int a = 0;
int leap;
printf("输入年份:");
scanf_s("%d", &a);
if (a % 4 == 0)
{
if (a % 100 == 0)
{
if (a % 400 == 0)
leap = 1;
else
leap = 0;
}
else
leap = 1;
}
else
leap = 0;
if (leap)
printf("%d 是闰年\n", a);
else
printf("%d 不是闰年\n", a);
break;
}
case 2:
{
int s = 0;
int d = 0;
int number = 0;
printf("游戏2\n");

    printf("输入一个整数:");
    scanf_s("%d", &number);
    if (number >= 0 && number <= 99999)
    {
        int count = 0;
        do
            {
                number = number / 10;
                count++;
        } while (number != 0);
            printf("这个数有%d位数\n", count);
        }
    else 
        printf("数据错误");
    while (number)
    {
        d = d * 10 + number % 10;
        s /= 10;
    }
    printf("逆序输出:%d", d);
    break; 
}
default:
    printf("game over");
}
return 0;

}

你前面在do..while里面使用:number = number / 10;结束do..while后number=0,后面的while就不循环了。你可以先把number赋给另外一个值(如number_1),让它去执行umber_1=umber_1/10。这样就不会对后面有影响了

#include<stdio.h>
int main()
{
int i = 0;
printf("选择游戏通道:");
scanf_s("%d", &i);
switch (i)
{
case 1:
{
printf("游戏1\n");
int a = 0;
int leap;
printf("输入年份:");
scanf_s("%d", &a);
if (a % 4 == 0)
{
if (a % 100 == 0)
{
if (a % 400 == 0)
leap = 1;
else
leap = 0;
}
else
leap = 1;
}
else
leap = 0;
if (leap)
printf("%d 是闰年\n", a);
else
printf("%d 不是闰年\n", a);
break;
}
case 2:
{
int s = 0;
int d = 0;
int number = 0;
int number_1=0;
printf("游戏2\n");

    printf("输入一个整数:");
    scanf_s("%d", &number);
    if (number >= 0 && number <= 99999)
    {
        int count = 0;
        number_1 = number;
        do
        {
            number_1 = number_1 / 10;
            count++;
        } 
        while (number_1 != 0);
        printf("这个数有%d位数\n", count);
    }
    else
        printf("数据错误");
    while (number!=0)
    {
        d = d * 10 + number % 10;
        s /= 10;
    }
    printf("逆序输出:%d", d);
    break;
}
default:
    printf("game over");
}
return 0;

}


```c


```