int A(float x, float y);//函数声明(函数原型)
int B(int y);
int main()
{
float x, y;//不定义整形是为了程序的健壮性考虑(消除安全隐患)
printf("请输入要查询的年份和月份(空格间隔):");
scanf("%f %f", &x, &y);
B(y);
if ((int)(x) == x && (int)(y) == y&&(int)(y)<13)//检验输入的日期是否合法
{
printf("%g年%g月有:%d天", x, y, A(x, y));
}
else
printf("你输入的日期至少有一个不合法!!!");
}
int A(float a, float b)//定义函数(为了保证形参类型一致只能定义浮点型)
{
int x, y;
x = a, y = b;//由于浮点数不能做求余运算所以进行数据类型转换
if (y == 1 || y == 3 || y == 5 || y == 7 || y == 8 || y == 10 || y == 12)
{printf("此年份为平年。\n");
return 31;}
else if (y == 4 || y == 6 || y == 9 || y == 11)
{printf("此年份为平年。\n");
return 30;}
else if (y == 2)
{
if ((x % 4 == 0 && x % 100 != 0) || ( x % 400 == 0))//注:能被100整除必可被4整除
{printf("此年份为闰年。\n");
return 29;
}else{printf("此年份为平年。\n");
return 28;
}
}
}
//CSDN博主「宇宙,你好」
//拓展,规范月份所属季节
int B(int month)
{
int z;
//printf("请输入一个月份(数字)");
//scanf("%d",month);
z=(month==1||month==2||month==12)+(month>2&&month<=5)+(month>5&&month<9)+(month<12&&month>8);
switch(z){
case 0:
case 1:printf("此月份为冬季。");
break;
case 2:printf("此月份为春季。");
break;
case 3:printf("此月份为夏季。");
break;
default:printf("此月份为秋季。");break;
}
}
Test.3
最新推荐文章于 2024-10-12 22:35:37 发布