Test.3

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;
    } 
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值