#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
```