当前位置:网站首页>【C语言】NextDay问题
【C语言】NextDay问题
2022-06-28 11:36:00 【贾璞】
输入一个时间,某年某月某日,输出下一天
主要就是边界控制,不使用愚蠢写法,无技术含量,仅仅逻辑性考验
注释完善,自行理解
执行环境:Ubuntu18.04 CLion/GCC
WIndows环境也无需修改
Code:
/* Next Day * 注意:紧扣题意,输入格式为:xx年xx月xx日,正好利用这锻炼格式化字符串sscanf()函数 * 至于例如2019 02 25这种格式,如此一来,写的更没意思了 * 包括多此一举在堆区开辟空间,同时也避免了用户故意无限输入导致栈区溢出问题 * 学习软件测试,就要考虑到万无一失 * 考研的同学可以多了解这些函数 * * */
#include <stdio.h>
#include <stdlib.h>
int main(void) {
//定义13个长度,0号索引不使用,避免后期+1操作
int monArray[13] = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("输入年月日[Format:xx年xx月xx日]:\n");
//堆区开辟空间,栈区空间Windows默认只有1M,Linux一般默认8M,可以扩大,在此不做赘述
char *time = malloc(64);
scanf("%s", time);
int year, mon, day;
//格式化字符串置于对应变量中
sscanf(time, "%d年%d月%d日", &year, &mon, &day);
//判断闰年后2月份数组天数加一
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
monArray[2]++;
//月,日未超范围
if ((mon <= 12 && mon >= 1) && (day <= monArray[mon])) {
//月尾判断
if (day == monArray[mon]) {
//到达年尾
if (mon == 12) {
day = 1;
mon = 1;
year++;
}
//只达到月尾
else {
day = 1;
mon++;
}
}
//月日均为超范围
else {
day++;
}
}
//月日超范围,直接return
else {
printf("Data Error\n");
return EXIT_FAILURE;
}
//计算成功
printf("Next Day is:%d年%d月%d日\n", year, mon, day);
return EXIT_SUCCESS;
}

边栏推荐
- day30 js笔记 BOM和DOM 2021.09.24
- Prepare for Jin San Yin Si I. testers without experience in automated testing projects should look at it quickly
- Redis principle - List
- Dongyuhui, New Oriental and Phoenix Satellite TV
- day36 js笔记 ECMA6语法 2021.10.09
- Interview skills for interview steps
- Chendanqi, Fang Fei, guquanquan and Li Bo won the prize, and the list of Sloan research award in 2022 was released
- Convert black mask picture to color annotation file
- The default point of this in JS and how to modify it to 2021.11.09
- Solutions to connection failures and errors when accessing mysql8 using the SSM project
猜你喜欢

Recommended practice sharing of Zhilian recruitment based on Nebula graph

Software test interview classic + 1000 high-frequency real questions, and the hit rate of big companies is 80%

.NET混合开发解决方案24 WebView2对比CefSharp的超强优势

Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush

携手Cigent:群联为SSD主控固件引入高级网络安全防护特性

Day31 JS notes DOM 2021.09.26

Web page tips this site is unsafe solution

New listing of operation light 3.0 - a sincere work of self subversion across the times!
![Connectionreseterror: [winerror 10054] the remote host forced an existing connection to be closed](/img/9a/97813f5ac4d7c15711891cff25b9dd.jpg)
Connectionreseterror: [winerror 10054] the remote host forced an existing connection to be closed

Array method in JS 2021.09.18
随机推荐
NFT card chain game system development DAPP construction technical details
Practice and Thinking on the architecture of a set of 100000 TPS im integrated message system
Intranet penetration in the working group environment: some basic methods
Many benefits of SEO optimization are directly related to traffic
AcWing 609. Salary (implemented in C language)
.NET混合开发解决方案24 WebView2对比CefSharp的超强优势
Cannot redeclare block range variables
Come on, yuanuniverse. Sure enough, the heat won't pass for a while
SoapUI rookie tutorial
The development and principle of the metacosmic system
Join hands with cigent: group alliance introduces advanced network security protection features for SSD master firmware
Necessary for beginners PR 2021 quick start tutorial, PR green screen matting operation method
分析list中有无重复数据且重复了几次
Convert black mask picture to color annotation file
QML控件类型:TabBar
Tidb v6.0.0 (DMR): initial test of cache table - tidb Book rush
Apache2配置对目录拒绝访问,但是可以访问里面文件的设置
Database Series: is there any way to seamlessly upgrade the business tables of the database
【北京航空航天大学】考研初试复试资料分享
Day34 JS notes regular expression 2021.09.29