为什么2004输出的值是1,i第一次不是就取到4了吗?

img


#include <stdio.h>
int main()
/闰年要比平年多一天。sxtc 不喜欢数字 4,所以他认为数位中含有数字 4 的年份干干巴巴麻麻赖赖一点都不圆润,需要盘一下。
比如“2004”虽然是闰年但是需要盘一下。希望你在判断闰年的基础上,判断一下这个闰年是不是需要盘一下。
输出仅一行,如果不是闰年输出 0;如果是闰年且不需要盘则输出 1;如果是闰年且需要盘一下则输出“panta!”。
/
{
int x;
if((x%100!=0&&x%4==0)||(x%400==0)){
int i,a=0;
while(x>0){
i=x%10;
x/=10;
if(i==4)
a=1;}
if(a==0)
printf("1");
else{
printf("panta!");}}
else
printf("0");

}

因为你这里面没用scanf输入,然后x也没有初始化,所以就是运行时系统自动产生个随机的垃圾值,然后那个值判定下来就是1,emm,大意了

#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
if((x%100!=0&&x%4==0)||(x%400==0)){
int i,a=0;
while(x>0){
i=x%10;
x/=10;
if(i==4)
a=1;}
if(a==0)
printf("1");
else{
printf("panta!");}}
else
printf("0");
}