发布时间:2019-08-15 14:33:19
程序如下:#include<stdio.h>**
main()
{
int year,mon,days,leap;
printf("年,月:");
scanf("%4d%2d",&year,&mon);
switch(mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days=31;break;
case 4:
case 6:
case 9:
case 11:days=30;break;
case 2:if(year%4==0&&year%100!=0||year%400==0)
leap=1;
else
leap=0;
if(leap)
days=29;
else days=28;
}
printf("%d年%月的天数为%天\n",year,mon,days);
}
但不知道为何出不来结果?求大佬告知
程序的问题是
1.
scanf("%4d%2d",&year,&mon);
scanf一般不用%4d这样的格式 ,只用%d
因为若你用这样的格式
你的输入必须是
200910
这样的,而不能用
2009 10
而你的输入,更是不对,你输入是的有逗号分开的,若你要这样输入,程序必须为
scanf("%d,%d",&year,&mon); //scanf也要用逗号,且不要用数字
2.你的输出完全不对,少%d了,正确的
printf("%d年%d月的天数为%d天\n",year,mon,days);
int daysofmonth(int yer,int month){switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:return (year%400==0)||((year%4==0)&&(year%100<>0))?29:28;}}void main(){int y,m;cout<<"请输入年,月\n";cin>>y>>m;cout<<y<<"年"<<m<<"月有"<<daysofmonth(y,m)<<"天";}