不知道为什么结果输出是这样的,求指点!
程序如下:
#include<stdio.h>
main()
{
int a,b,days,d;
printf("年和月");
scanf("%4d%2d",&a,&b);
switch(b)
{
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((a%4==0&&a%100!=0)||(a%400==0))
d=1;
else
d=0;
if(d)
days=29;
else days=28;
}
printf("%d年%d月的天数为%d天",a,b,days);
}
不知道为什么结果输出是这样的,求指点!
b是数值,不能与'1'字符比较
case '1':
应该改成
case 1:
你题目的解答代码如下:
#include <stdio.h>
void main()
{
int a, b, days, d;
printf("年和月");
scanf("%4d%2d", &a, &b);
switch (b)
{
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 ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))
d = 1;
else
d = 0;
if (d)
days = 29;
else
days = 28;
}
printf("%d年%d月的天数为%d天", a, b, days);
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
你把case后面的那些单引号都去掉,就对了。
你输入的是整型数字,不是字符型数字
‘1'是字符1,不是数字1