作业:2018 年总共有365 天,将2018 年1 月1 日作为计数起点,即计数1,2018 年12 月31 日作为计数终点,即计数365。计数1 代表“2018 年1 月1 日-星期一”,计数10 代表“2018年1 月10 日-星期三”。参照实验1,通过键盘输入一个1-365 之间的值,包括1 和365,将其转换为年、月、日、星期,并输出到屏幕。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int tick=0;
short year,month,day,week;
printf("Please input a tick between 1-365\n");
scanf("%d",&tick);
year=2021;
if(1<=tick&&tick<=31) //1-31,1月31天
{
month=1;
day=tick;
}
else if(32<=tick&&tick<=59) //32-59,2月28天
{
month=2;
day=tick-31;
}
else if(60<=tick&&tick<=91)//60-91,3月31天
{
month=3;
day=tick-31-28;
}
else if(92<=tick&&tick<=112)//92-112,4月30天
{
month=4;
day=tick-31-28-31;
}
else if(113<=tick&&tick<=144)//113-144,5月31天
{
month=5;
day=tick-31-28-31-30;
}
else if(145<=tick&&tick<=175)//145-175,6月30天
{
month=6;
day=tick-31-28-31-30-31;
}
else if(176<=tick&&tick<=207)//176-207,7月31天
{
month=7;
day=tick-31-28-31-30-31-30;
}
else if(208<=tick&&tick<=239)//208-239,8月31天
{
month=8;
day=tick-31-28-31-30-31-30-31;
}
else if(240<=tick&&tick<=270)//240-270,9月30天
{
month=9;
day=tick-31-28-31-30-31-30-31-31;
}
else if(271<=tick&&tick<=302)//271-302,10月31天
{
month=10;
day=tick-31-28-31-30-31-30-31-31-30;
}
else if(303<=tick&&tick<=333)//303-333,11月30天
{
month=11;
day=tick-31-28-31-30-31-30-31-31-30-31;
}
else if(334<=tick&&tick<=365)//334-365,12月31 天
{
month=12;
day=tick-31-28-31-30-31-30-31-31-30-31-30;
}
else
{
printf("error!!");
return 0;
}
week=(tick+4)%7; //0代表星期日,+4是因为2021/1/1是星期五
if(week==0)
{
printf("Curent time:%04d年%02d月%02d日-星期日",year,month,day);
}
if(week==1)
{
printf("Curent time:%04d年%02d月%02d日-星期一",year,month,day);
}
if(week==2)
{
printf("Curent time:%04d年%02d月%02d日-星期二",year,month,day);
}
if(week==3)
{
printf("Curent time:%04d年%02d月%02d日-星期三",year,month,day);
}
if(week==4)
{
printf("Curent time:%04d年%02d月%02d日-星期四",year,month,day);
}
if(week==5)
{
printf("Curent time:%04d年%02d月%02d日-星期五",year,month,day);
}
if(week==6)
{
printf("Curent time:%04d年%02d月%02d日-星期六",year,month,day);
}
printf("\n");
system("pause");
}
scanf 和scanf_s 有什么区别?
其实scanf_s是vs针对scanf弄出来的安全函数。
为什么要对制表符长度和缩进长度进行设置?
为了保持代码规范。
包含头文件有两种方式,一种是尖括号“#include <>”包含,一种双引号“#include" "”包含,简述两种包含头文件方式的区别。
需要注意的是,尖括号包含一般用于包含标准库的头文件,编译器会去系统配置的库环境变量和者用户配置的路径去搜索,而不会在项目的当前目录去查找,而双引号包含一般用于包含用户自己编写的头文件,编译器会先在项目的当前目录查找,找不到后才会去系统配置的库环境变量和用户配置的路径去搜索。
本教程规定,对于标准的库头文件,如stdio.h,使用尖括号包含,即#include
<stdio.h>,而用户自己编写的头文件,如UserFile.h,使用双引号包含,即#include"UserFile.h"。
局部变量的有效区域是什么?本教程中,局部变量命令采用的是什么格式?
函数内部的非静态变量即为局部变量,其有效区域仅限于函数范围内,局部变量命名采用第一个单词全部字母小写,第二、三、…个单词的首字母大写其余字母小写格式,例如:
timerStatus,tickVal,restTime
如果不使用system(“pause”)语句,还有什么其他方法,可以避免win32 控制台结果输出界面一闪而过的现象。
不知道。