#include<stdio.h>
main()
{
int year,flag1,flag2=0;
char a;
printf("请输入年份:\n");
scanf("%d",&year);
do
{
if(year%400==0)
flag1=1;
else
if(year%4==0&&year%100!=0)
flag1=1;
else
flag1=0;
if(flag1==1)
printf("%d年是闰年\n",year);
else
printf("%d年不是闰年\n",year);
printf("是否重新判断(y/n)\n");
scanf("%c",&a);
if(a=='Y'||a=='y')
flag2=1;
else
{
printf("结束判断\n");
}
if(flag2==1)
{
printf("请重新输入年份:\n");
scanf("%d",year);
}
}while(flag2==1);
}
那为什么用a=getchar();getchar();代替scanf还是不行呢?直接就结束了
追答原理一样啊,getchar()还是带缓冲区的函数。
可以一样用前面两个方法解决。