珠海响应式网站建设,自建网站定位,表格可以做网站么,大连零基础网站建设教学电话1.打印日期 给出年分m和一年中的第n天#xff0c;算出第n天是几月几号。 输入描述#xff1a; 输入包括两个整数y(1y3000)#xff0c;n(1n366)。 输出描述#xff1a; 可能有多组测试数据#xff0c;对于每组数据#xff0c; 按 yyyy-mm-dd的格式将输入中…1.打印日期 给出年分m和一年中的第n天算出第n天是几月几号。 输入描述 输入包括两个整数y(1y3000)n(1n366)。 输出描述 可能有多组测试数据对于每组数据 按 yyyy-mm-dd的格式将输入中对应的日期打印出来。 #include stdio.h
#include stdbool.h
bool isrun(int y){ //判断是否是闰年if(y%4000||(y%40y%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(darr[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%4000||(y%40y%100!0)) return true;return false;
}int main() {int n,y,m,d,num;int f365; // 一年天数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;f366;}// 判断原始日期为哪一天int old_day0;for(int j1;jm;j){old_dayarr[j];}old_dayd;int new_day0;new_day old_day num;int i1;if(new_dayf){ // 没超过一年while(new_dayarr[i]){new_day-arr[i];i;}}else{y; //新的一年new_day-f; // 减去去年的天数if(isrun(y)){arr[2]29;f366;} else{arr[2]28;f365;}while(new_dayarr[i]){new_day-arr[i];i;}}printf(%04d-%02d-%02d\n,y,i,new_day);}return 0;
}基本思路 原来日期是一年中的具体天数再加上天数等于新的具体天数在此过程中要注意判断闰年以及跨年考虑新的一年是否是闰年
3.剩下的树 有一个长度为整数L(1L10000)的马路可以想象成数轴上长度为L的一个线段起点是坐标原点在每个整数坐标点有一棵树即在0,1,2…L共L1个位置上有L1棵树。 现在要移走一些树移走的树的区间用一对数字表示如 100 200表示移走从100到200之间包括端点所有的树。 可能有M(1M100)个区间区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。 输入描述 两个整数L(1L10000)和M(1M100)。 接下来有M组整数每组有一对数字。 输出描述 可能有多组输入数据对于每组输入数据输出一个数表示移走所有区间的树之后剩下的树的个数。 #include stdio.hint main() {int L,M;scanf(%d %d,L,M);// 种树int tree[10001];for(int i0;iL;i){tree[i]1;}// 挖树for(int j0;jM;j){// 左右区间int l,r;scanf(%d %d,l,r);for(int kl;kr;k){tree[k]0;}}// 数树int num0;for(int i0;iL;i){if(tree[i]1) num;}printf(%d,num);return 0;
}