c语言输入年、月,根据输入的年月,判断该月有多少天。

这个代码有什么问题啊。。。初学者头都要炸了找不出来
#include <stdio.h>
void main (void)
{
int a,b;
scanf("%4d%*d%d",&a,&b);
if(b==2)
{
if((a%4==0&&(a%100)!=0)||(a%400==0))
printf("%d年%d月有29天\n",a,b);
else
printf("%d年%d月有28天\n",a,b);
}
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("%d年%d月有31天\n",a,b);
if(b==4||b==6||b==9||b==11)
printf("%d年%d月有30天\n",a,b);
}
发现问题了。。。改成%4d%2d就行了

#include <stdio.h>
int main (void)
{
int a,b;
scanf("%4d%*c%d",&a,&b);
if(b==2)
{
if((a%4==0 && (a%100)!=0) || (a%400==0))
printf("%d年%d月有29天\n",a,b);
else
printf("%d年%d月有28天\n",a,b);
}
if(b==1 || b==3 || b==5 || b==7 || b==8 || b==10 || b==12)
printf("%d年%d月有31天\n",a,b);
if(b==4 || b==6 || b==9 || b==11)
printf("%d年%d月有30天\n",a,b);
}

scanf那行把“%*d”换成”%*c“,因为你输入的分隔符是字符而不是数字。要注意的是,输入格式是“2012.2”或“2012-2”都可以,但不能是”2012年2“,因为‘年’占更多的字符位。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-22
scanf("%4d%d",&a,&b);

只要两个%d

本回答被提问者和网友采纳
相似回答