其实你这个题有两个错误,一个就是&,在C语言中,&是地址符,也就是说,最后输出的是d的地址,
在输入时需要&,就是需要地址才能找到存储的地方,在输出时则不需要,
你只要把&在输出的地方去掉就好
第二个就是你在判断师傅闰年时,这时候y的值你还没打进去,没有赋值,这样当然会错,下面是修改后的,你参考下,有不懂的请追问
#include
main()
{int y,m,d,T;
printf("请输入年,月,日\n");
scanf("%d,%d,%d",&y,&m,&d);
if((y%4==0&&y%100!=0)||(y%400==0))
{ T=31+29;}
else
{T=31+28;}
switch(m)
{
case 1:printf("该日是本年的%d天。\n",d);break;
case 2:printf("该日是本年的%d天。\n",d+31);break;
case 3:printf("该日是本年的%d天。\n",d+T);break;
case 4:printf("该日是本年的%d天。\n",d+T+31);break;
case 5:printf("该日是本年的%d天。\n",d+T+31+30);break;
case 6:printf("该日是本年的%d天。\n",d+T+31*2+30);break;
case 7:printf("该日是本年的%d天。\n",d+T+31*2+30*2);break;
case 8:printf("该日是本年的%d天。\n",d+T+31*3+30*2);break;
case 9:printf("该日是本年的%d天。\n",d+T+31*4+30*2);break;
case 10:printf("该日是本年的%d天。\n",d+T+31*4+30*3);break;
case 11:printf("该日是本年的%d天。\n",d+T+31*5+30*3);break;
case 12:printf("该日是本年的%d天。\n",d+T+31*5+30*3);break;
}
}