PTA7-6 新年倒计时(使用数组编译的注意事项)

学院计划在新年举行联欢晚会,要求每个班级都要准备节目。为了让班上同学有紧迫感,班长希望编写一个倒计时程序,输入日期,显示距离下一个新年的天数days。例:输入“2021-11-11”,显示“还有51天到新年”。

输入格式:

输入以"-"分隔的当前日期。

输出格式:

以格式“还有days天到新年”输出还有多少天到新年。无多余空格及其他字符。

输入样例:

2021-11-11

输出样例:

还有51天到新年
#include<stdio.h>
int main()
{
    int a,b,c,d,i,sum,days;
    scanf("%d-%d-%d",&a,&b,&c);
    if((a%4==0&&a%100!=0)||a%400==0)
        {int e[11]={31,29,31,30,31,30,31,31,30,31,30};
          for(i=0;i<(b-1);i++) {
            sum+=e[i];}
            d=sum+c;
            days=366-d+1;

    }
    else
        {int e[11]={31,28,31,30,31,30,31,31,30,31,30};
    for(i=0;i<(b-1);i++) {
            sum+=e[i];}
            d=sum+c;
            days=365-d+1;

    }
            printf("还有%d天到新年",days);
            return 0;}

特别需要注意的是,在条件语句里进行变量的定义时,其只在这条语句中有效,也就是说,这里定义的int e[11]只在{}的语句中有效,所以需要在条件语句中分别使用循环来直接使用定义的数组,而不能将数组分开定义后使用一个循环来计算。 

### PTA 新年倒计时 7-3 编程题解 PTA(Programming Teaching Assistant)是一个用于程序设计教学的在线评测平台,其中包含了大量针对不同场景的编程题目。对于“新年倒计时”的问题,通常涉及时间计算、字符串处理以及基本输入输出操作。 以下是基于常见需求的一个可能实现方案: #### 题目描述 假设当前时间为 `T` 秒,距离新年的剩余时间为 `N` 秒。编写一个程序,接受两个整数作为输入:一个是当前的时间戳 `T`,另一个是目标的新年时间戳 `Y`。程序应输出从现在到新年之间的秒数差值,并将其转换为天 (`D`)、小时 (`H`)、分钟 (`M`) 和秒的形式显示。 --- #### 解决思路 该问题的核心在于时间单位的换算和格式化输出。具体来说: 1. 计算两时间戳之差得到总秒数。 2. 将总秒数依次分解为天、小时、分钟和秒。 3. 输出结果遵循指定格式。 下面是 Python 的一种实现方式[^1]: ```python def countdown_to_new_year(T, Y): N = Y - T # 总秒数差异 D = N // (24 * 60 * 60) # 天数部分 H = (N % (24 * 60 * 60)) // (60 * 60) # 小时部分 M = (N % (60 * 60)) // 60 # 分钟部分 S = N % 60 # 剩余秒数部分 return f"{D} days {H} hours {M} minutes {S} seconds" # 输入样例 current_time = int(input("Enter current time in seconds since epoch: ")) new_year_time = int(input("Enter New Year's time in seconds since epoch: ")) result = countdown_to_new_year(current_time, new_year_time) print(result) ``` 此代码片段定义了一个函数 `countdown_to_new_year` 来完成所需功能[^1]。通过简单的除法与取模运算实现了时间单位间的相互转化。 --- #### 测试案例分析 如果用户提供如下数据: - 当前时间戳 `T=1672531199` (对应于某一天的午夜之前一秒) - 新年时间戳 `Y=1672617600` (下一年的第一秒钟) 则运行上述脚本会返回 `"0 days 23 hours 59 minutes 1 seconds"` 表明仅剩不到一整天即可迎接新的一年到来[^2]。 --- #### 注意事项 当处理实际应用中的日期与时区相关逻辑时,建议利用标准库模块如 `datetime` 或第三方工具包来简化复杂度较高的情况下的开发工作量[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值