#define _CRT_SECURE_NO_WARNINGS 1 #include "stdio.h" #include "rn.h" #include "exit.h" void s4(void) { int y,m,day,a,temp=0; int days[12]={31,0,31,30,31,30,31,31,30,31,30,31}; //给一年中的十二个月的天数赋值(由于二月的天数暂无法确定,所以先将二月赋值为0天) printf("请输入 年 月:\n"); scanf("%d%d", &y, &m); exit1(y, m, 5); if (rn(y)) days[1] = 29; else days[1] = 28; //调用判断闰年的函数,来判断二月为平年还是闰年,进而得知这一年的二月有多少天 for (int i=0;i<m-1;i++) temp+=days[i];//前几个月的总天数 day=temp+1;//前几个月的总天数加一为所查询月份日历的第一天 a=(y-1+(y-1)/4-(y-1)/100+(y-1)/400+day)% 7;//所查询月份的第一天是星期几 printf("----------------------------------------------\n"); printf("%d年%d月\n", y, m); printf(" 日 一 二 三 四 五 六\n"); for (int k=0;k<a;k++) printf(" "); /*因为日历表头是从周日开始的,所以k从0开始数,到所查询月份第一天的前一天的星期数全部打空格*/ for (int s=1;s<=days[m-1];s++)//从本月的第一天到最后一天 { printf("%4d",s);//附加格式符,指定输出数据的总宽度 if ((s+a)%7==0)//控制每行显示的宽度,每七天换一行 printf("\n"); } printf("\n"); printf("----------------------------------------------\n"); }
时间: 2023-09-21 13:07:55 浏览: 41
这段代码是一个 C 语言程序,用于打印指定年月的日历。程序主要包含以下几个步骤:
1. 定义变量 y、m、day、a 和 temp,其中 y 和 m 分别表示所查询的年份和月份,day 表示所查询月份日历的第一天是该年的第几天,temp 表示前几个月的总天数,a 表示所查询月份的第一天是星期几。
2. 定义数组 days,给一年中的十二个月的天数赋值,其中二月的天数暂时赋值为0天。
3. 调用函数 exit1,该函数会判断输入的年月是否合法,如果不合法则程序退出。
4. 调用函数 rn,该函数会判断输入的年份是否为闰年,如果是,则将二月天数设为29天,否则设为28天。
5. 计算前几个月的总天数,并将其加一作为所查询月份日历的第一天。
6. 计算所查询月份的第一天是星期几,并在日历表头中打印出来。
7. 根据所查询的月份和其天数,打印出整个月份的日历。
总的来说,这段代码比较简单,主要是对日期计算和格式化输出的练习。
相关问题
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>
这段代码是一个C语言的程序代码,包含了预处理器指令和头文件的引用。其中:
- `#define _CRT_SECURE_NO_WARNINGS`指令用于禁用某些函数的安全检查。
- `<stdio.h>`头文件提供了输入输出函数的定义,例如`printf()`和`scanf()`等。
- `<string.h>`头文件提供了字符串函数的定义,例如`strcpy()`和`strlen()`等。
这些指令和引用是通常情况下编写C程序所需的。在具体的程序代码中,这些函数可以被调用以完成各种任务。
#define _CRT_SECURE_NO_WARNINGS 1
在C/C++编程中,当使用一些不安全的函数(如scanf、gets等)时,编译器会给出警告,提示你使用更安全的函数。而在使用Visual Studio编译器时,如果不加预处理指令#define _CRT_SECURE_NO_WARNINGS,则会出现编译错误。因此,为了避免这种情况的发生,我们需要在代码中添加#define _CRT_SECURE_NO_WARNINGS指令,以告诉编译器不要给出警告。这个指令的作用是禁用scanf、gets等不安全函数的警告信息。
在C/C++代码中添加#define _CRT_SECURE_NO_WARNINGS指令的方法有两种:
1.在每个C/C++文件的开头添加#define _CRT_SECURE_NO_WARNINGS指令。
2.将#define _CRT_SECURE_NO_WARNINGS指令添加到预处理器中,这样每次创建项目时,都会自动在源文件的第一行添加该指令,无需手动添加。
示例代码如下:
```c
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("你输入的字符串是:%s\n", str);
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)