当前位置: 首页 > news >正文

c语言机试练习

1.打印日期

给出年分m和一年中的第n天,算出第n天是几月几号。
输入描述:
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
输出描述:
可能有多组测试数据,对于每组数据, 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
在这里插入图片描述

#include <stdio.h>
#include <stdbool.h>
bool isrun(int y){ //判断是否是闰年if(y%400==0||(y%4==0&&y%100!=0)){return true;}return false;
}int main() {int y,d;scanf("%d %d",&y,&d);int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};if(isrun(y)){arr[2]=29;}int i = 1;while(d>arr[i]){d = d-arr[i];i++;}printf("%04d-%02d-%02d",y,i,d);return 0;
}

%d左对齐,输出变量的所有数字;%4d右对齐,宽度为4,左边填充空格,当变量的实际宽度大于4时,输出变量的所有数字;%04d与%4d的唯一区别就是左边填充0。
以%d,%4d,%04d,输出12时,结果是:
12
两个空格12
0012

2.日期累加

设计一个程序能计算一个日期加上若干天后是什么日期。
输入描述:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出描述:
输出m行,每行按yyyy-mm-dd的个数输出。

#include <stdio.h>
#include <stdbool.h>
bool isrun(int y){if(y%400==0||(y%4==0&&y%100!=0)) return true;return false;
}int main() {int n,y,m,d,num;int f=365; // 一年天数scanf("%d",&n);while(n--){scanf("%d %d %d %d",&y,&m,&d,&num);int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};if(isrun(y)){arr[2]=29;f=366;}// 判断原始日期为哪一天int old_day=0;for(int j=1;j<m;j++){old_day+=arr[j];}old_day+=d;int new_day=0;new_day = old_day + num;int i=1;if(new_day<=f){ // 没超过一年while(new_day>arr[i]){new_day-=arr[i];i++;}}else{y++; //新的一年new_day-=f; // 减去去年的天数if(isrun(y)){arr[2]=29;f=366;} else{arr[2]=28;f=365;}while(new_day>arr[i]){new_day-=arr[i];i++;}}printf("%04d-%02d-%02d\n",y,i,new_day);}return 0;
}

基本思路
原来日期是一年中的具体天数,再加上天数等于新的具体天数,在此过程中要注意判断闰年,以及跨年考虑新的一年是否是闰年

3.剩下的树

有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。 现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。 可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。
输入描述:
两个整数L(1<=L<=10000)和M(1<=M<=100)。 接下来有M组整数,每组有一对数字。
输出描述:
可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。

#include <stdio.h>int main() {int L,M;scanf("%d %d",&L,&M);// 种树int tree[10001];for(int i=0;i<=L;i++){tree[i]=1;}// 挖树for(int j=0;j<M;j++){// 左右区间int l,r;scanf("%d %d",&l,&r);for(int k=l;k<=r;k++){tree[k]=0;}}// 数树int num=0;for(int i=0;i<=L;i++){if(tree[i]==1) num++;}printf("%d",num);return 0;
}
http://www.lryc.cn/news/17810.html

相关文章:

  • Python的PyQt框架的使用-资源文件夹的使用
  • 如何遍历HashMap
  • 11技术太卷我学APEX-数据加载
  • JVM记录
  • 盘点机器学习实战中最频繁使用的AutoML工具库
  • 50-Jenkins-Lockable Resources插件实现资源锁定
  • 测试员,如果未来5年你不想失业……你得学会自动化测试
  • 腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
  • 【运动控制】CNC三轴小线段路径规划
  • 渗透测试之DNS域名信息探测实验
  • ASE140N04-ASEMI低压MOS管ASE140N04
  • Qt——QLineEdit
  • 前端-HTML-zxst
  • 终极方案,清理 docker 占用磁盘过大问题, 亲测有效!
  • puzzle(1321)时间旅人
  • 活动预告 | 2023 Meet TVM 开年首聚,上海我们来啦!
  • CoreIDRAW 软件的强大功能及适用性
  • JavaScript Window History
  • 2023年人力资源管理师报名和培训费用是多少
  • 2023-2-23 刷题情况
  • 数据归档,存储的完美储备军
  • ES6-11、基本全部语法
  • Spring Boot整合Thymeleaf和FreeMarker模板
  • SQL的四种连接-左外连接、右外连接、内连接、全连接
  • “点工”的觉悟,5年时间从7K到24K的转变,我的测试道路历程~
  • 【Web安全-MSF记录篇章一】
  • 配置Flutter开发环境
  • 23年六级缓考
  • 低代码选型,论协同开发的重要性
  • 【第二十二部分】游标